2013-10-18 82 views
0

這是一個非常簡單的伎倆,我認爲應該工作得很好,但事實並非如此。所以我有多個複選框在頁面上。每當他們改變時,我想記錄對數據庫的任何改變。因此,在查看事件的複選框「點擊」我有與此類似:骨幹同步傳遞錯誤的參數

var filter_name = $(e.target).attr("name"); 
var filter_value = $("input:checkbox[name=" + filter_name + "]:checked").map(function() { 
     return this.value; 
}).get(); 


console.log("filter_name: " + filter_name); #=> my_method_name 

CarInsuranceApp.aciq.set({filter_name: filter_value}); 
CarInsuranceApp.aciq.save(); 

在這裏,我收到一個JSON結果:

"filter_name"=>"extra" 

所以我的問題是如何動態傳遞集合上的模型屬性名稱?

+0

你爲什麼要用map函數來獲取過濾器值?你想把它當作數組嗎? – user10

回答

-1

這裏是一個可能的一行JavaScript`ish溶液:

CarInsuranceApp.aciq.attributes[filter_name] = filter_name; 
+2

避免這樣使用。使用'set'分配值。 – user10

+0

爲什麼?任何解釋? –

+0

看到這個。 http://stackoverflow.com/questions/19393858/why-getters-and-setters-in-backbones-models/19397097#19397097 – user10

2

使用這樣的。

CarInsuranceApp.aciq.set(filter_name, filter_value); 
+0

太棒了!看起來像Backbonish的東西... –

+0

使用$ .map從具有類似名稱屬性的check_boxes獲得結果 –

+0

ok。得到它了..... – user10