Collection 内の Model を1つだけ選択できるようなプログラムを書く場合、
各 Model に selected 属性を追加して、その変化を Collection 側で取得して処理するのがよいです。
var collection = Backbone.Collection.extend({ initialize: function() { this.on('change:selected', function(selectedModel) { console.log('collection 内の Model の selected が変更されました。'); this.each(function(model) { model.set('selected', false, {silent: true}); }); selectedModel.set('selected', true, {silent: true}); }); } });
以下に Collection 内の Model を1つだけ選択するサンプルを公開しました。
http://okanoworld.appspot.com/sample/backbonejs/select/index.html
ソースコードはこちら
https://github.com/yokano/sample/tree/master/backbonejs/select
0 件のコメント:
コメントを投稿