Backbone.js在模型,模式或反模式之间共享单例?

时间:2012-10-11 13:53:54

标签: backbone.js singleton backbone-views

我正在开始使用backbone + require开发应用程序。我想在几个视图之间共享一个Model的相同实例。我已将模型定义为单例,因此所有视图都访问模型的同一实例。

我评估了两个选项:

1.使用模型实例的事件作为参数来传达视图

2.在视图之间共享相同的模型实例。

我选择了第二个选项,在我的模型中添加了一个新行:

define(['Underscore','Backbone'], 
function(_, Backbone) {
    var Experience = Backbone.Model.extend({
        defaults: {
            'id' : 1,           
            'date' : '2012-10-11 '
        }
    });
     if (this.model === undefined)   return  new Experience();
});

然后我将模型绑定到我的观点

define([ 'jQuery','Underscore','Backbone','models/experience'
], function($, _, Backbone, Experience){
  var MyView1 = Backbone.View.extend({     
            initialize: function () {               
                this.model = Experience;
                ....

这样,使用此模型的所有视图都可以共享它。

是否有更好的方法在骨干网中共享模型实例?将事件和实例用作参数会更好吗?

1 个答案:

答案 0 :(得分:0)

恕我直言,单身人士是您的理想选择。

如果在很多模型之间共享一个非常通用的视图,并且我认为不是你的情况,那么将实例传递给视图会非常有用。

相关问题