0

我下载了最新的backbone V1.0.0,和V0.9.2相比发现了一些奇怪的问题

        TodosCollection.on('add', this.addOne, this);
        TodosCollection.on('reset', this.addAllTodos, this);
        TodosCollection.on('change:completed', this.filterOne, this);
        TodosCollection.on("filter", this.filterAll, this);
        TodosCollection.on('all', this.render, this);    

将新内容添加到集合后,在 V0.9.2 中,只有以下三个序列事件触发:

add
change
sync

但在 V1.0.0 中,除了以上三个

change:cid
"change:attributes"
"change:collection"
"change:_changing"
.....

这么多事件触发

模型

define([
    'lodash',
    'backbone'
], function (_, Backbone) {

    var TodoModel = Backbone.Model.extend({
        defaults : {
            title : '',
            completed : false,
            order : 0
        },
        settings : {
            validation : {
                rules : {
                    title : {
                        "required" : true,
                        "min" : 5
                    }
                }
            }
        },
        toggle : function () {
            this.save({
                completed : !this.get('completed')
            });
        }
    });
    return TodoModel;
});

实际上在模型中没有这些触发事件,那为什么会发生这种情况呢?

4

1 回答 1

1

可能有助于了解版本之间的哪些变化。
还有,也是。您提到的只是内置事件,它们没有任何问题。对 Backbone 的文档进行一点研究/阅读(使用 Backbone 时的非常经典的行为)会告诉你。
如果我在您的问题中遗漏了一点,请随时告诉我。

于 2013-04-02T07:45:05.067 回答