[英]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
关联(即尚未添加)。
假设您已经定义了model
和collection
类似于:
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
模型add
到rooms
集合中,例如:
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.