это своего рода продолжение вопроса, который я задал
Backbone.js Наследовать Просмотры
но это стало немного грязно, и теперь у меня есть решение, я просто хотел бы, чтобы кто-нибудь сказал мне, если я сумасшедший
я делаю следующее:
dci.Controller = Backbone.View.extend({
defaults:function(){
return {
views:{},
modules:{},
isDestroyed:false,
destroy:function(){
if(this.isDestroyed){return;}
this.isDestroyed = true;
$.each(this.views,function(i,item){
item.remove();
});
$.each(this.modules,function(i,item){
item.destroy();
});
}
}
}
});
затем я делаю это, чтобы использовать контроллер:
dci.AssetController = dci.Controller.extend({
events:_.extend({
// whatever events here
}, dci.Controller.prototype.events),
initialize:function(options){
$.extend(this,this.defaults());
}
});
наконец, я создаю следующий экземпляр:
var controller = new dci.AssetController(someOptions);
так что теперь на моем контроллере var у меня есть коллекция представлений и модулей, которые являются уникальными для каждого экземпляра, поэтому, если у меня есть два dci.AssetCotrollers по какой-то причине (на самом деле я использую ту же модель для модулей, и это когда несколько экземпляров одного и того же класса) каждый из них имеет свою собственную коллекцию представлений и модулей.
это убивало меня некоторое время, но я думаю, что это сработает, и я особенно хотел бы поблагодарить Брайана Дженизио, который привел меня на этот трек в вышеупомянутом, как.
Теперь, пожалуйста, скажите мне, если это сумасшедший шаблон.
Спасибо,
Раифа