2012-12-04 118 views
3

我正在学习Backbone。骨干视图是否总是需要骨干模型?

我在想是否骨干视图总是需要骨干模型。

例如,假设我有一个包含两个子面板的面板。我将这种结构的方式是与主面板父视图,然后两个子视图的子面板...

var OuterPanel = Backbone.View.extend({ 
     initialize: function() { 
      this.innerPanelA = new InnerPanelA(innerPanelAModel); 
      this.innerPanelB = new InnerPanelB(innerPanelBModel); 
     }, 
    }); 

    var outerPanel = new OuterPanel(); 

父视图仅仅是一个容器。它可能有一些控制,但没有数据需要被持久化。这是做到这一点的正确方法吗?或者这是不好的做法?

日Thnx(提前)对你的帮助

+2

简答:不。 – Yasser

回答

5

正如Backbone.View docs

骨干观点几乎更公约比他们的代码 - 他们 不能决定你的HTML和CSS的东西你可以使用 与任何JavaScript模板库一起使用。

换句话说,如果您没有模型,请不要使用模型。另一方面,我会将儿童模型作为外部视图实例的选项注入,而不依赖于全局变量,如下所示:

var OuterPanel = Backbone.View.extend({ 
    initialize: function(options) { 
     this.innerPanelA = new InnerPanelA({model: options.modelA}); 
     this.innerPanelB = new InnerPanelB({model: options.modelB}); 
    } 
}); 

var outerPanel = new OuterPanel({ 
    modelA: innerPanelAModel, 
    modelB: innerPanelBModel 
});