gpt4 book ai didi

backbone.js - Marionette ItemView如何在更改时重新渲染模型

转载 作者:行者123 更新时间:2023-12-03 11:47:24 24 4
gpt4 key购买 nike

我正在使用Handlebars模板引擎。
所以,我有Model:

Backbone.Model.extend({
urlRoot: Config.urls.getClient,
defaults: {
contract:"",
contractDate:"",
companyTitle:"",
contacts:[],
tariff: new Tariff(),
tariffs: [],
remain:0,
licenses:0,
edo:""
},
initialize:function(){
this.fetch();
}
});

然后是Marionette ItemView:
Marionette.ItemView.extend({
template : templates.client,
initialize: function () {
this.model.on('change', this.render, this);
},
onRender: function () {
console.log(this.model.toJSON());
}
});

然后我将一切都称为:
new View({
model : new Model({id:id})
})

并且,它立即为我呈现了一个 View ,这很酷。
但是,在模型获取数据之后,它会触发“更改”,因此我在控制台中序列化了两次模型,并且第一次看到了空模型,然后填充了一个模型。

但是, View 未更新。

我该如何解决?

附言我了解,我可以在提取完成回调中调用render方法。但是,当用户更改模型时,我也需要它以采取进一步的措施。

最佳答案

在 View 中,您可以使用以下代码

    modelEvents: {
'change': 'render'
}

代替
   initialize: function () {
this.model.on('change', this.render, this);
},
onRender: function () {
console.log(this.model.toJSON());
}

关于backbone.js - Marionette ItemView如何在更改时重新渲染模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876970/

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