编程语言
首页 > 编程语言> > javascript – 绑定到ItemView更改事件

javascript – 绑定到ItemView更改事件

作者:互联网

我想重新渲染一个使用Marionette.ItemView制作的列表
当ItemView中的相应模型发生变化时.

有关激活此任务的最佳方法的任何想法?

// Collection passed to Marionette.CompositeView
myCollection.attributes = [
    {
        id: 1,
        name: 'bar'
        closed: false
    },
    ….
];
// Marionette.ItemView
myModel.set({
    closed: true
}); // when this model change I would like to re-render the copositeView 
    // or remove the Marionette.ItemView

P.S:
如果我在Marionette.ItemView中尝试以下代码(1),
当我保存模型时,我得到以下错误(2).

(1)

// Marionette.ItemView
initialize: function () {
    this.model.on('change', this.render);
}

(2)

Uncaught TypeError: Object [object Object] has no method 'serializeData'

解决方法:

在初始化方法中使用_.bindAll是一种很好的做法.可能是您的问题与范围有关.

initialize: function () {
    _.bindAll(this);
    this.model.on('change', this.render);
}

如果bindAll无法解决您的问题,请粘贴您的模型和视图.

标签:javascript,backbone-js,marionette
来源: https://codeday.me/bug/20190711/1435058.html