我想知道在Backbone.js的一個集合中管理子模型視圖一些通用的最佳實踐模型視圖管理。嵌套集合/ Backbone.js的中
到今天爲止,我一直在使用下面的解決方案。只是想知道是否有其他人有這個,或更好的處理方式。目前爲止我的工作很好,但我總是有興趣學習更多&提煉我的代碼。
CollectionView = Backbone.View.extend({
renderItem: function(model) { // instantiate view for an item
this.viewPointers[model.cid] = new this.itemView({ model: model });
this.$(".item-list").append(this.viewPointers[model.cid].render().el);
},
renderCollection: function() { // instantiate views for entire collection
var self = this;
this.removeAll(); // clear current references (if any exist)
this.collection.each(function(model){
self.renderItem(model);
});
},
removeItem: function(model) { // remove/delete an individual view object
this.viewPointers[model.cid].undelegateEvents();
this.viewPointers[model.cid].remove();
delete this.viewPointers[model.cid];
},
removeAll: function() { // remove/delete entire collection's view objects
var self = this;
_.each(this.viewPointers, function(view) {
self.removeItem(view.model);
});
}
});
我通常通過擴展CollectionView類來實現這一點。類似於
MyView = CollectionView.extend({
el: '#id',
viewPointers: {}, // reference to individual itemViews by model CID
itemView: views.SingleItem,
...
initialize: function() {
this.renderCollection();
},
});
是否有其他人有他們喜歡用於這種情況的東西?
將這項幫助:https://github.com/afeld/backbone-nested? – poseid
不 - 看起來像支持嵌套模型屬性的庫。這個問題是關於視圖管理的,或者特別是在觀看那些觀看那些模型所盯着的集合的視圖中觀看單個模型的視圖的管理。 – 1nfiniti