2013-04-23 28 views
2

所以,我不知道我非常明白這個回調應該如何觸發。如果你把一個準系統模型,收集和訪問量:將模型添加到木偶CollectionView的集合不會觸發onItemAdd回調

PatchModel = Backbone.Model.extend({}); 

PatchCollection = Backbone.Collection.extend({model: PatchModel}); 

PatchView = Backbone.Marionette.ItemView.extend({template:'#patchview'}); 

PatchCollectionView = Backbone.Marionette.CollectionView.extend({ 
    itemView:PatchView 
    ,onItemAdded: function(itemView){ 
    console.log("item was added"); 
    } 
}); 

和實例他們是這樣的:

Patch0 = new PatchModel({}); 
Patch1 = new PatchModel({}); 
Patches = new PatchCollection();   

PatchesView = new PatchCollectionView({collection:Patches,el:"dom_id"});  

Patches.add(Patch0); 
PatchesView.render(); 
Patches.add(Patch1); 

的PatchesView onItemAdded回調從來沒有觸發。嗯...

+0

只是好奇你爲什麼要添加空模型? – 2013-04-23 23:31:39

+2

我發佈了一些沒有必要的示例,並確保它仍然以相同的方式失敗。 – 2013-04-24 00:58:46

回答

3

它看起來像文件已過時。您應該使用onAfterItemAddedonBeforeItemAdded

這在V1.0.0-RC2改變

* BREAKING:*改變了item:added事件before:item:addedafter:item:added

Link

這是你的例子重做的小提琴。 http://jsfiddle.net/puleos/axJg4/

var PatchCollectionView = Backbone.Marionette.CollectionView.extend({ 
    itemView: PatchView, 
    initialize: function() { 
     _.bindAll(this); 
    }, 
    onAfterItemAdded: function(itemView){ 
     console.log("item was added"); 
    }, 
    onRender: function(){ 
     console.log("render"); 
    } 
}); 
+0

謝謝!我提出了修復文檔的請求。 – 2013-04-24 17:40:59

+0

我有同樣的想法。看起來德里克已經更新了文檔,但讓他們以某種方式破壞。 – 2013-04-24 17:54:50