我被困在以下問題上:Backbone.js:如何處理單個視圖的選擇?
我有一個屬性模型,它定義了它是否可視化選擇或不是,我將爲此問題調用SelectModel。
SelectModel = Backbone.Model.extend({
defaults:{
isSelected: false
}
})
現在我沒有得到的第一部分是我應該如何處理一般選擇。 如果我想使用觀察者模式,我的視圖應該聽取isSelected屬性的更改。但我的觀點首先觸發了這一點,所以我會這樣做。
SelectView = Backbone.View.extend({
initialize: function(){
this.model.bind("change:isSelected", this.toggleSelectionVisually)
},
events: {
"click" : toggleSelection
},
toggleSelection: function(){
this.model.set({"isSelected": !this.model.get("isSelected");
},
toggleSelectionVisually:(){
//some code that shows that the view is now selected
},
})
所以這本身已經感覺有點荒唐,但我想我才明白了什麼。
但是我真正無法實現的部分卻沒有讓我的代碼變得可怕,就是處理多個模型的選擇,一次只選擇一個模型。
SelectListView = Backbone.View.extend({
initialize: function(){
this.collection = new SelectList();
},
toggleSelection: function(){
????
}
})
那麼誰應該通知選擇對象誰改變了?哪個部分應該觸發它,哪個部分應該聽?我真的被困在這一個。對於單個View來說,這是可行的,對於一個集合我很遺憾地丟失了。
謝謝,我喜歡與前面選擇的緩存這一個最好的一起。 – Daniel 2012-03-10 17:00:08