Marionette - modelEvents不工作

时间:2015-12-06 08:19:51

标签: javascript backbone.js marionette

我试图使用modelEvents的{​​{1}}部分,但由于某些原因,它不起作用。

我设置了一个简单的测试用例,其中ItemView有4个CollectionView s。当我点击其中一个ItemView时,我会更改ItemViewItemView)中的第一个CollectionView模型。即使模型的内容发生了变化,更改事件也不会触发。

this.collection.models[0].attributes = {...}内部,我尝试使用ItemView使用不同的选项(modelEvents; modelEvents: {"change": "functionToCall"}),在初始化时尝试使用简单的modelEvents: {"change:attributes": "functionToCall"}功能:

listenTo

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

但它们都不起作用。

这不是第一次真正想要工作的哈希(例如this.listenTo(this.model.attributes, "change", function(){ this.functionToCall(); }); 和其他几个)我不知道问题是什么(我使用的是Marionette 2.4.3和jQuery 2.1.4(只是因为Marionette需要它)。)

1 个答案:

答案 0 :(得分:2)

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