私は以下の問題を抱えています: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
},
})
だから、これはそれ自体がすでにビット不条理に感じているが、私はちょうど何かを間違って理解して推測します。
私のコードを恐ろしくすることなく実際に実装できない部分は、一度に1つのモデルしか選択されていない複数のモデルの選択を処理することです。
SelectListView = Backbone.View.extend({
initialize: function(){
this.collection = new SelectList();
},
toggleSelection: function(){
????
}
})
誰に選択の変更を通知する必要がありますか?どの部分がそれを引き起こし、どの部分が耳を傾けるべきか?私は本当にこれに固執しています。単一のビューのために、それは実行可能です、コレクションのために私は悲しいことに失われます。
おかげで、私は前の選択のキャッシュと一緒にこの1一番好き。 – Daniel