簡體   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