我所有的Backbone.View在最终状态下仅使用一次。 (项目 View 除外)。
目前我以这种方式处理Backbone.Views作为Singleton:
var Singletonizer = function(Singleton) {
if (Singleton._instance) return Singleton._instance;
Singleton._instance = new Singleton();
Singletonizer(Singleton);
};
不幸的是,将此小功能添加为我存储库中每个amd模块的依赖项并不是很好。
还有另一种方法来处理吗?也许覆盖基本 View 类?
最佳答案
从非常值得推荐的书Recipes with Backbone中:
从这里:
// definition
MyApplication.Views.List = Backbone.View.extend();
// instantiation
$(function() {
MyApplication.ListView = new MyApplication.Views.List({
el: $('#list')
});
})
到这里:
$(function() {
MyApplication.ListView = new (Backbone.View.extend({
initialize: function() {
// ...
}
}))({el: $('#list')})
});
我不得不说我从未使用过这样的技术。对我来说看起来很乱,我更喜欢可读性而不是建筑。
关于javascript - 如何默认将“ Backbone View ”设置为单例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12219244/