Jua*_*oto 5 backbone.js handlebars.js marionette
在获取分配给Marionette CompositeView的模型后,尝试在Handlebars模板中更新数据字段,但页面中的HTML未更新.
我的代码看起来像这样:
模型:
B.Page.Model = Backbone.Model.extend({
url: function () {
return 'my/resource/';
},
});
Run Code Online (Sandbox Code Playgroud)
视图:
B.Page.CompositeView = Backbone.Marionette.CompositeView.extend({
template: Handlebars.compile(templates.find('#my-template').html()),
initialize: function(options) {
_.bindAll(this);
this.model.fetch();
},
)};
Run Code Online (Sandbox Code Playgroud)
模板:
<script id="my-template" type="text/x-handlebars-template">
Date: <span id="my-data-field">{{data}}</span>
</script>
Run Code Online (Sandbox Code Playgroud)
我检查了资源,它确实返回了具有data字段集的正确JSON .此外,模型将传递到视图中.
我怀疑这是因为在render检索数据后没有调用函数; 但是,我希望得到关于应该如何完成的反馈.
有什么好办法呢?
谢谢!
编辑:这个CompositeView确实有一个与之关联的Collection(当我触发相应的事件时渲染就好了).我故意遗漏了部分代码,以避免混淆问题.
您是对的,因为 aCompositeView扩展自CollectionView,默认情况下它仅在集合事件上重新呈现。要使其根据模型的更改重新渲染,您可以在您的 中执行以下操作CompositeView:
initialize: function(){
this.listenTo(this.model, "change", this.render);
}
Run Code Online (Sandbox Code Playgroud)