2015-10-19 96 views
0

使用Backbone + Marionette,如何刷新CompositeView的初始化方法中的視圖?如何刷新複合視圖Marionette

這是我的代碼:

View.RegionProofUploadView = Marionette.CompositeView.extend({ 
     template : regionProofsTpl, 
     tagName : "div", 
     className : "panel panel-default", 
     childView : View.ProofUploadView, 
     childViewContainer : "div.pieces", 
}); 
+0

你是什麼意思的'刷新'..?初始化是在創建新視圖時調用的,爲什麼要「刷新」新視圖? –

+0

,因爲複合視圖取決於項目視圖。在初始化方法中,我將測試如果這個.model.status =「驗證」==>刷新複合視圖 –

+0

那麼你是什麼意思的'刷新'..? –

回答

1

首先,因爲我從你的意見理解,你需要刷新(或者換句話說重新渲染)您的觀點不是在初始化(這是其他人指出沒有目的),但在改變事件發生在兒童模型之後。

在這種情況下,您可以使用marionette.js childEvents來偵聽「更改」事件並對其執行操作。

View.RegionProofUploadView = Marionette.CompositeView.extend({ 

    childEvents: { 
     'change:status': 'onStatusChange', 
    }, 

    onStatusChange: function (model, value, options) { 
     this.render(); 
    }, 

}); 

如果子模型狀態屬性發生變化,這應該(理論上)重新呈現您的合成視圖。 讓我知道,如果這是你所期待的。