我开始使用Backbone,这是我的代码,位于jsfiddler:
正如您在单击按钮时所看到的,我正在尝试添加车辆:
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合作过,这不是那么有效。更新模型时,视图会自动更新,但由于某种原因,视图不会在此更新。
答案 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之上)等库。