Javascript Backbone.js。正确地进行更改事件
我正在用Backbone.js编写Todo应用程序 您可以在下面看到我的部分代码。 型号: 视图: 但是模型中的某些错误和更改事件不起作用。我不明白哪里出了错。 请帮帮我。 10q.根据主干: 设置Javascript Backbone.js。正确地进行更改事件,javascript,backbone.js,backbone-views,Javascript,Backbone.js,Backbone Views,我正在用Backbone.js编写Todo应用程序 您可以在下面看到我的部分代码。 型号: 视图: 但是模型中的某些错误和更改事件不起作用。我不明白哪里出了错。 请帮帮我。 10q.根据主干: 设置model.Set(属性,[选项]) 设置属性散列(一个或多个) 在模型上有许多。如果任何属性更改了模型的状态, 将在模型上触发“更改”事件。将事件更改为 特定属性也会被触发,您可以根据需要绑定到这些属性 例如:change:title和change:content。你也可以通过 单个键和值 因此,您
model.Set(属性,[选项])
设置属性散列(一个或多个)
在模型上有许多。如果任何属性更改了模型的状态,
将在模型上触发“更改”事件。将事件更改为
特定属性也会被触发,您可以根据需要绑定到这些属性
例如:change:title和change:content。你也可以通过
单个键和值
因此,您需要在模型上使用set
方法来触发这些事件。因此,您需要使用以下内容:
this.collection.get(modelCid).set('complete',false);
我认为应该是
this.on('change'
除非您手动启动它。Notchange:complete
这个。on('change'
不起作用啊,我认为要启动更改事件,您需要在模型上使用set
方法。好的,我会尝试一下。谢谢。是的。非常感谢。
var AppView = Backbone.View.extend({
collection: todoCollection,
el: 'body',
events: {
'click #tasks li .complete-task' : 'toggleComplete'
}
toggleComplete: function (e) {
var modelCid = $(e.target).parent('li').attr('id');
if ( this.collection.get(modelCid)['complete'] ){
this.collection.get(modelCid)['complete'] = false;
} else {
this.collection.get(modelCid)['complete'] = true;
};
}
});
this.collection.get(modelCid).set('complete',false);