我正在使用复合视图来显示Backbone Marionette的表格,但是在我对模型进行获取后数据进入时,让模板的包装器部分重新渲染时遇到一些麻烦.这是我的模板:
复合视图的模板:
<thead>
<tr>
{{#each report.columns}}
<th>{{name}}</th>
{{/each}}
</tr>
</thead>
<tbody></tbody>
Run Code Online (Sandbox Code Playgroud)
而ItemView的模板:
{{#each cols}} <td>{{value}}</td> {{/each}}
Run Code Online (Sandbox Code Playgroud)
在我的控制器函数中,我正在创建模型的实例,创建和显示视图,并进行获取以将我的数据导入模型:
var tView = new tableCompositeView({collection: rowsCollection, model: configModel});
layoutView.tablecontent.show(tView);
rowsCollection.fetch();
configModel.fetch();
Run Code Online (Sandbox Code Playgroud)
收集项目很好,当获取成功时视图会更新.但是,当configModel.fetch()完成时,复合视图模板中的包装器位永远不会更新.
在文档中,它表示您可以使用.renderModel()来仅渲染处理模型的视图部分.当我这样做:
configModel.fetch().success(function(){ tView.renderModel(); });
Run Code Online (Sandbox Code Playgroud)
没有什么变化.但是当我使用.render()时:
configModel.fetch().success(function(){ tView.render(); });
Run Code Online (Sandbox Code Playgroud)
它工作正常,并得到更新.这可能现在可以工作,但它重新渲染我的整个表格,这可能是一个性能问题