我意识到对此有很多解决方案,但我想知道社区的意见是什么。
我有一系列的模型和收藏品。每个模型都有许多视图,如详细信息、编辑、打印、搁置、帮助等。集合具有通常具有相同名称的视图(即:搁置、帮助等)。
我的一个要求是我需要在模块中构建我的代码。如果未加载模块,则应用程序不应跟踪模块的功能。例如,如果用户没有查看、编辑等其他用户的权限,则可能会发生这种情况。所以“用户”模块甚至不会被加载。
所以...
我认为存储模型视图定义的好地方可能是模型的构造函数和集合构造函数中的集合。例如:
var User = (function(){ // module definition
// model definition
var Model = Backbone.Model.extend({
initialize: function() {
// ...
}
},{
Views: {
Details: Backbone.View.extend({
// ...
}),
Aside: Backbone.View.extend({
// ...
}),
Help: Backbone.View.extend({
// ...
})
}
});
// collection definition
var Collection = Backbone.Collection.extend({
model: Model,
initialize: function() {
// ...
}
},{
Views: {
Aside: Backbone.View.extend({
// ...
}),
Help: Backbone.View.extend({
// ...
})
}
});
// add more code here
return { // make model and collection public
Model: Model,
Collection: Collection
};
})(); // end module definition
我意识到我可以将我的观点存在于其他地方,但这种方法是否有任何我可能不知道的相当大的缺点?也许是内存泄漏或不太明显的东西?
谢谢!