[英]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.