繁体   English   中英

骨干绑定以在集合上添加事件

[英]Backbone binding to add event on collection

我对主干集合有疑问。 我试图听所有关于收藏的事件:

  this.collection.on('all', function(ev) {
    console.log(ev);
  });

并且只有当我创建这样的记录时,集合触发事件:

  this.collection.create({name: 'aloha'});

但是当我直接创建模型实例时不是:

  var room = new Room({name: 'hello'}); // this code not trigger any events on collection
  room.save();

我是Backbone的新手,但我认为第二个代码应该触发事件。 有人可以帮我吗? 谢谢!

该事件不会在集合上触发,因为room模型未与this.collection关联(即尚未添加)。

假设您已经定义了modelcollection类似于:

var Room = Backbone.Model.extend();

var Rooms = Backbone.Collection.extend({
  model:Room
});

var rooms = new Rooms();

rooms.on('all',function(eventName) {
  console.log(eventName);
});

为了使代码按预期工作,您必须add room模型addrooms集合中,例如:

var room = new Room({'name':'hello'});

// This will trigger the add event on the collection
rooms.add(room);

// save the model
room.save();

以下是上述代码块的简写:

var room = rooms.create({'name':'hello'});

这是显示行为的FIDDLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM