0
我在模型視圖上更改狀態,我在想如何找到模型引用的集合的乾淨方式。從模型中查找骨架集合
本質上,它的工作原理是這樣的:當一個模型被觸發打開時,它需要首先升級並讓集合查詢其他模型,然後將當前「打開」的任何內容變爲「關閉」。現在我傳遞每個模型視圖對它來自的集合視圖的引用,以便它可以從那裏查詢集合,但是我認爲這可能是不好的做法。
我在模型視圖上更改狀態,我在想如何找到模型引用的集合的乾淨方式。從模型中查找骨架集合
本質上,它的工作原理是這樣的:當一個模型被觸發打開時,它需要首先升級並讓集合查詢其他模型,然後將當前「打開」的任何內容變爲「關閉」。現在我傳遞每個模型視圖對它來自的集合視圖的引用,以便它可以從那裏查詢集合,但是我認爲這可能是不好的做法。
被觸發集合中的模型也將在收集直接觸發,爲方便起見,任何事件。
所以,如果你在集合中更改屬性,active
,在模型上,那麼這兩個模型和收集將觸發"change:active"
事件。你可以有集合聽本身的適當"change"
事件:
initialize: function() {
_.bindAll(this, 'active_changed');
this.on('change:active', this.active_changed);
},
active_changed: function(active_m) {
if(!active_m.get('active'))
return;
this.each(function(m) {
if(m.id != active_m.id) {
console.log('Updating ' + m.id);
m.set({ active: false }, { silent: true });
}
});
}
上set
的{silent:true}
是隻是爲了避免產生從內部簿記更加事件;這可能或可能不適合你的情況。
演示:http://jsfiddle.net/ambiguous/VAnUq/
只具有一個模型中的「開」狀態是收藏級屬性,因此它是有道理的收集管理這一對旗下所有車型。
Mu,你一直在保存一天。萬分感謝。 – captDaylight 2012-07-29 23:50:16