Javascript Backbone.js。正确地进行更改事件

Javascript Backbone.js。正确地进行更改事件,javascript,backbone.js,backbone-views,Javascript,Backbone.js,Backbone Views,我正在用Backbone.js编写Todo应用程序 您可以在下面看到我的部分代码。 型号: 视图: 但是模型中的某些错误和更改事件不起作用。我不明白哪里出了错。 请帮帮我。 10q.根据主干: 设置model.Set(属性,[选项]) 设置属性散列(一个或多个) 在模型上有许多。如果任何属性更改了模型的状态, 将在模型上触发“更改”事件。将事件更改为 特定属性也会被触发,您可以根据需要绑定到这些属性 例如:change:title和change:content。你也可以通过 单个键和值 因此,您

我正在用Backbone.js编写Todo应用程序

您可以在下面看到我的部分代码。 型号:

视图:

但是模型中的某些错误和更改事件不起作用。我不明白哪里出了错。 请帮帮我。 10q.

根据主干:

设置
model.Set(属性,[选项])

设置属性散列(一个或多个) 在模型上有许多。如果任何属性更改了模型的状态, 将在模型上触发“更改”事件。将事件更改为 特定属性也会被触发,您可以根据需要绑定到这些属性 例如:change:title和change:content。你也可以通过 单个键和值

因此,您需要在模型上使用
set
方法来触发这些事件。因此,您需要使用以下内容:

this.collection.get(modelCid).set('complete',false);

我认为应该是
this.on('change'
除非您手动启动它。Not
change: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);