使用文字对象作为Backbone.Model

时间:2015-01-10 16:41:49

标签: backbone.js view model

我需要将一个文字对象发送到视图。是否有更好的替代代码:

var model= (new (Backbone.Model)).set({'foo':1,'bar':3})

2 个答案:

答案 0 :(得分:1)

只是简单地

var model = new Backbone.Model({'foo':1,'bar':3})

答案 1 :(得分:0)

是的,如果您只是传递一些与视图数据无关的变量,那么您不应该传入模型。我可以考虑另外两种更高效的方法来将数据导入到您的视图中。

传递实例化数据

每个视图都会将参数传递给View构造函数,并将它们从视图initialize移开(Backbone在传入参数时会做得更多,但它们都会在initialize中结束)。让我告诉你一个简单的例子。

var MyView = Backbone.View.extend({
  initialize: function(options) {
    // All the parameter you pass into the view construct with will be
    // in the initialize options

    // Attach options to the view so you can access your options
    // from all view properties (bound to the view)
    this.options = options || {};
  }
}

现在将您的对象文字放入您的视图中:

var aView = new MyView({'foo':1,'bar':3});
aView.options.foo; // 1
aView.options.bar; // 3

实例化后使数据可用

如果要在实例化后合并对象,则只需使用_.extend

_.extend(aView, {'foo':1,'bar':3});
aView.foo; // 1
aView.bar; // 3