获取分配给 Marionette CompositeView 的模型后,尝试更新 Handlebars 模板中的数据字段,但页面中的 HTML 未更新。
我的代码如下所示:
型号:
B.Page.Model = Backbone.Model.extend({
url: function () {
return 'my/resource/';
},
});
查看:
B.Page.CompositeView = Backbone.Marionette.CompositeView.extend({
template: Handlebars.compile(templates.find('#my-template').html()),
initialize: function(options) {
_.bindAll(this);
this.model.fetch();
},
)};
模板:
<script id="my-template" type="text/x-handlebars-template">
Date: <span id="my-data-field">{{data}}</span>
</script>
我检查了资源,它确实返回了正确的 JSON 和
data
字段集。此外,模型正在传递到 View 中。我怀疑这是由于
render
检索数据后未调用函数;但是,我想获得有关如何完成的反馈。有什么好的方法可以做到这一点?
谢谢!
编辑 :这个 CompositeView 确实有一个与之关联的 Collection(当我触发适当的事件时它呈现得很好)。我故意省略了那部分代码以避免混淆问题。
最佳答案
你是对的,因为 CompositeView
延伸自 CollectionView
,默认情况下它只在集合事件上重新渲染。为了让它在你的模型上重新渲染,你可以在你的 CompositeView
中做这样的事情。 :
initialize: function(){
this.listenTo(this.model, "change", this.render);
}
关于backbone.js - 如何在使用 Backbone 和 Marionette 的 Handlebars 模板中获取模型后更新数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476586/