我所有的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/

10-13 06:06