2012-12-04 146 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 
});