我刚开始在一周前开始研究backbonejs,我发现我的模型在听取调用时被保存了两次"更改"从我的观点来看。
基本上我拥有的是一个用户可以编辑的表,只要用户更新单元格值我想将其推送到服务器,我已经定义了一个"更改"方法,我每次更新单元格时都会调用它。
我面临的问题是,在调用"更改"事件。
如果我通过wait:true为model.save,则更改事件被触发三次
上午我做错了什么,或者我错过了什么东西?任何帮助将不胜感激以下是我的代码
var Territory = Backbone.Model.extend({
initialize: function () {
Backbone.Model.prototype.initialize.apply(this, arguments);
this.on("change", function (model, options) {
if (options && options.save === false) return;
model.save();
});
}
});
var Territories = Backbone.Collection.extend({
model: Territory,
url: "js/bookings.json"
});
var territories = new Territories();
var columns = [{
name: "bookingId",
label: "ID",
editable: false,
cell: Backgrid.IntegerCell.extend({
orderSeparator: ''
})
}, {
name: "bookingTime",
label: "Time",
cell: "string"
}, {
name: "bookingUser",
label: "Name",
cell: "string"
}, {
name: "reserveDate",
label: "Date",
cell: "string"
}, {
name: "bookingEmail",
label: "Email",
cell: "string"
}];
var grid = new Backgrid.Grid({
columns: columns,
collection: territories
});
grid.listenTo(territories, "change", function () {
alert(territories.pluck('bookingId'))
});
非常感谢任何帮助。
答案 0 :(得分:4)
我很不好,这2个事件是从客户端发出的一个用于保存数据的事件,另一个是在保存数据后来自服务器的响应。