バックボーン リレーショナルを使用してモデル リレーションシップを設定しています。これにより、Item
は に属しColumn
ます。項目を列に追加することはうまくいきますが、古い列から項目を削除するために、項目の既存のビューを参照するにはどうすればよいですか? (したがって、アイテムは現在、列全体で複製されています。)
この JSFiddle - http://jsfiddle.net/geVPp/1を参照してください(ColumnView
removeItem
イベント ハンドラーにコードを実装する必要があると思いますが、間違っている可能性があります)。
(UI コントロールがまだないため、インスタンス化の例はスクリプトの最後にあります。)
フィドルからの ColumnView は次のとおりです。
var ColumnView = Backbone.View.extend({
className: 'column',
tagName: 'div',
template: Handlebars.compile($('#column-template').html()),
initialize: function() {
_.bindAll(this, 'render', 'renderItem', 'removeItem');
this.model.bind('change', this.render);
this.model.bind('reset', this.render);
this.model.bind('add:items', this.renderItem);
this.model.bind('remove:items', this.removeItem);
},
render: function() {
return $(this.el).html(this.template(this.model.toJSON()));
},
renderItem: function(item) {
var itemView = new ItemView({model: item});
this.$('.items').append($(itemView.render()));
},
removeItem: function(item) {
// @todo -- How do I reference the item model's view, in order to remove the DOM element?
}
});