如何将Backbone模型用于多个视图(在多个文件中)?

时间:2014-10-04 20:48:34

标签: javascript backbone.js underscore.js

我有简单的HTML页面,我希望在其中显示具有相同数据的多个视图。为此,我创建了一个带有数据的Backbone模型和两个要渲染的视图。我的所有模型和视图都在单独的文件中分开。我想在所有视图中使用我的模型对象。因此,对于我的2个视图,我不必为服务器进行多次ajax调用。

这是我的代码

Model.js

var ModelData = Backbone.Model.extend({
   defaults:{
      Name: "ABC",
      Marks: 100
   }
});

var modelData= new ModelData();

View1.js

var View1 = Backbone.View.extend({
   initialize: function(){
      this.model = (HOW TO REFER MY MODEL Object ?)
   }
});

View2.js

var View2 = Backbone.View.extend({
   initialize: function(){
      this.model = (HOW TO REFER MY MODEL Object?)
   }
});

1 个答案:

答案 0 :(得分:1)

来自fine manual

  

构造函数/初始化 new View([options])

     

有几个特殊选项,如果通过,将直接附加到视图:modelcollectionelidclassNametagNameattributesevents

因此,在实例化视图时应附加模型:

var v1 = new View1({ model: modelData });
var v2 = new View2({ model: modelData });

您应该有一个路由器或其他对象来处理实例化您的视图。无论这个是什么,都应该跟踪modelData模型实例,然后在实例化时将它传递给视图。