Backbone Collection'添加'事件未触发

Zen*_*Zen 2 javascript backbone.js

我的Collection中有一个事件监听器,它监听'add'事件,当我添加在路由器中添加的示例数据时,它似乎才会触发,但是当我在我的视图中添加更多模型时,代码却没有两者都在下面:

采集:

Application.Collection.extend({
  name: "todos/todos",
  initialize: function() {
    this.on("add", console.log("added"));
  },
  url: "/todo-application/todos"
});
Run Code Online (Sandbox Code Playgroud)

路由器(这会触发一个事件):

collection = new Application.Collections["todos/todos"]();
var m = new Application.Model({
    title: 'Finish screencast',
    done: true
});
collection.add(m);
Run Code Online (Sandbox Code Playgroud)

查看(这不会触发事件):

Application.View.extend({
  name: "todos/index",
  events: {
    "submit form": function(event) {
        event.preventDefault();
        var attrs = this.serialize();
        this.collection.add(attrs);
        this.$('input[name=title]').val('');
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

collection.add视图肯定工程,作为模型被添加到集合,并显示在屏幕上,但该集合只给了我console.log()加入样本数据时的初始页面加载...

编辑:

根据我的Backbone Chrome扩展程序,事件确实正在解雇,但由于某种原因,此事件绑定无效,我尝试使用this.listenTo而不是.on.

Rid*_*ANE 6

当您on在对象上使用函数时,您将绑定callbackevent该对象上的一个,并且callback必须是一个函数,如下所示:

this.on("add", function() { console.log("added"); });
Run Code Online (Sandbox Code Playgroud)