mls*_*ves 3 backbone.js marionette
我想出了我的问题,但我想知道为什么,这样我(希望)可以更好地理解木偶/骨干.
问题以下代码在删除项目时会更新视图:
var MainView = Marionette.ItemView.extend({
    template: "#sample-template",
    events :{
        "click #remove" : "remove"
    },
    remove: function(){            
        this.trigger("property:remove", this.model);
    }
});
var CollectionView = Marionette.CollectionView.extend({
    itemView: MainView,
    initialize: function(){
        this.on("itemview:property:remove", function(view, model){
            alert(this.collection.length);
            this.collection.remove(model);
            alert(this.collection.length);
        });
    }
});
修复下面的代码确实按预期更新了视图:
var MainView = Marionette.ItemView.extend({
    template: "#sample-template",
    triggers :{
        "click #remove" : "property:remove"
    },
});
var CollectionView = Marionette.CollectionView.extend({
    itemView: MainView,
    initialize: function(){
        this.on("itemview:property:remove", function(view, model){
            alert(this.collection.length);
            this.collection.remove(view.model);
            alert(this.collection.length);
        });
    }
});
Backbone.View定义一个remove从DOM中删除视图的方法.您的第一个示例将覆盖该方法.
如果重命名remove为removeIt名称冲突消失,代码按预期工作.对于它的价值,我认为第二种方法无论如何都适用于这种情况.
| 归档时间: | 
 | 
| 查看次数: | 4922 次 | 
| 最近记录: |