2012-07-06 121 views
0

在我Backbone.js的景色之一,我有以下代碼:如何使用Backbone.js將參數傳遞給控制器​​?

events: 
    'click .filter_classroom_size': 'filterClassroom' 

    filterClassroom: (event)-> 
    event.stopPropagation() 
    event.preventDefault() 
    Backbone.history.navigate("classrooms?nationality", true) 

我的路由器具有下面的代碼:

routes: 
    'classrooms?:filter': 'classrooms' 

    initialize: -> 
    @collection = new Classrooms.Collections.Entries() 
    @collection.fetch() 

    classrooms: (filter) -> 
    classroomView = new Seats.Views.ClassroomIndex(collection: @collection) 
    $('#output_container').html(classroomView.render().el) 
    alert("#{filter}") # this prints out the filter parameter 

classrooms_controller.rb:

class ClassroomsController < ApiController 
    def show 
    # How do I send a parameter here so I can filter on it? 
    respond_with Classroom.all 
    end 
end 

我想能夠將參數傳遞到控制器,以便我可以過濾數據庫結果。

謝謝!

回答

0

骨幹網使用jQuery.ajax引擎蓋下,所以你可以簡單地通過內部方法,如savefetchdestroy jQuery.ajax選項。

initialize: -> 
    @collection = new Classrooms.Collections.Entries() 
    @collection.fetch 
    data: 
     your_key: your_value 
+0

如何從視圖發送參數到路由器放入'initialize'節?另外,我只是把你的例子放在初始化部分,並通過控制器中的'Rails.logger.info'輸出參數,鍵/值沒有顯示。 – Goalie 2012-07-06 06:07:48

+0

當你調用了教室功能時,你可以調用@ collection.fetch({data:{filter:filter}}),因爲你有過濾變量。關於記錄器,看看你的代碼是否正確識別,它應該工作。 – mateusmaso 2012-07-06 06:18:30

相關問題