gpt4 book ai didi

backbone.js - 如何在使用 Backbone 和 Marionette 的 Handlebars 模板中获取模型后更新数据?

转载 作者:行者123 更新时间:2023-12-04 20:09:26 26 4
gpt4 key购买 nike

获取分配给 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com