我正在使用複合視圖來顯示具有Backbone Marionette的表格,但遇到一些問題時,在數據進入後重新渲染模板的包裝部分取我的模型。這裏是我的模板:Backbone Marionette renderModel()不適用於複合視圖
複合視圖的模板:
<thead>
<tr>
{{#each report.columns}}
<th>{{name}}</th>
{{/each}}
</tr>
</thead>
<tbody></tbody>
而且ItemView控件的模板:
{{#each cols}} <td>{{value}}</td> {{/each}}
在我的控制器功能,我創建了模型的實例,創建和顯示視圖,並進行取數據以獲取我的數據到模型中:
var tView = new tableCompositeView({collection: rowsCollection, model: configModel});
layoutView.tablecontent.show(tView);
rowsCollection.fetch();
configModel.fetch();
收集項目正常,當獲取成功時更新視圖。不過,在configModel.fetch()完成時,複合視圖模板中的包裝位永遠不會更新。
在文檔中,它說您可以使用.renderModel()來僅渲染處理模型的視圖部分。當我這樣做:
configModel.fetch().success(function(){ tView.renderModel(); });
沒有什麼變化。但是,當我使用.render():
configModel.fetch().success(function(){ tView.render(); });
它工作正常,並得到更新。這可以現在工作,但它是重新渲染我的整個表,這可能是一種性能問題
「可能是一種性能問題」。如果它成爲性能問題,爲什麼不擔心呢? – 2013-04-25 01:02:22