Marionette - 模型事件不工作

Marionette - modelEvents not working

我正在尝试使用 ItemViewmodelEvents 部分,但由于某些原因,它不起作用。

我设置了一个简单的测试用例,其中我有一个 CollectionView 和 4 个 ItemView。当我单击其中一个 ItemView 时,我会更改 CollectionView (this.collection.models[0].attributes = {...}) 中第一个 ItemView 的模型。即使模型的内容已更改,更改事件也不会触发。

ItemView 中,我尝试使用具有不同选项(modelEvents: {"change": "functionToCall"}modelEvents: {"change:attributes": "functionToCall"})的 modelEvents,尝试使用简单的 listenTo,在初始化函数:

this.listenTo(this.model, "change", function(){
    this.functionToCall();
});

this.listenTo(this.model.attributes, "change", function(){
    this.functionToCall();
});

但其中 none 有效。

这不是第一次这样的散列真的不想工作(例如 ui: {} 和其他一些)我不知道问题是什么(我正在使用 Marionette 2.4.3 和 jQuery 2.1.4(只是因为 Marionette 需要它))。

根据 Backbone (http://backbonejs.org/#Model-attributes) 中的文档,我认为问题可能与您直接通过属性 属性 更新模型有关。文档明确指出应使用 model.set(..) 更新模型 - 不这样做不会触发与更改模型数据相关的事件。