首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Marionette ItemView如何在更改时重新渲染模型

Marionette ItemView如何在更改时重新渲染模型
EN

Stack Overflow用户
提问于 2013-06-02 04:30:14
回答 2查看 34.3K关注 0票数 21

我使用的是Handlebar模板引擎。

所以,我有一个模型:

代码语言:javascript
复制
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();
        }
    });

然后是木偶ItemView:

代码语言:javascript
复制
Marionette.ItemView.extend({
        template : templates.client,
        initialize: function () {
            this.model.on('change', this.render, this);
        },
        onRender: function () {
            console.log(this.model.toJSON());
         }      
    });

然后我把所有的东西都称为:

代码语言:javascript
复制
new View({
    model : new Model({id:id})
        })

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

但是,视图不会更新。

我怎么才能修复它?

附言:我理解,我可以在fetch done回调中调用render方法。但我也需要它为进一步的行动,当用户将改变模型。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16876970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档