将模型添加到Backbone.Collection不刷新视图

时间:2014-02-28 09:33:11

标签: javascript jquery backbone.js

我开始使用Backbone,这是我的代码,位于jsfiddler:

http://jsfiddle.net/KZyeV/2/

正如您在单击按钮时所看到的,我正在尝试添加车辆:

 addVehicle: function(){
        console.log(this.collection);
        this.collection.add({Color:'black', Type: 'bicycle'});
        //this.render(); why do I have to again call render? without this it doesn't work.
    }

但由于某种原因,除非我致电this.render();,否则它不会更新视图。这是正确的方法吗?我和Knockout合作过,这不是那么有效。更新模型时,视图会自动更新,但由于某种原因,视图不会在此更新。

1 个答案:

答案 0 :(得分:2)

只需添加:

initialize: function(){            
    this.template = _.template($('#vehicleItemTemplate').html());
    this.collection.bind("reset", this.render, this);
    this.collection.bind("add", this.render, this);
},

Backbone不会自动对集合更改做出反应。如果您需要,请查看Marionette.js(它建立在Backbone之上)等库。