主干模型触发"change"事件两次



我大约一周前才开始在backbonejs上工作,我发现我的模型在从我的视图中调用"change"事件时被保存了两次。

基本上我所拥有的是一个用户可以编辑的表,每当用户更新单元格值时,我想将其推送到服务器,为此我定义了一个"更改"方法,每次单元格更新时我都调用它。

我面临的问题是id模型在调用"change"事件时被保存两次。

如果我通过wait:true for model。保存,更改事件触发三次

我做错了什么,还是我错过了一些明显的东西?如有任何帮助,不胜感激

下面是我的代码
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'))
});

我的天哪,这两个事件一个是从客户端触发的保存数据,另一个是保存数据后服务器的响应。

相关内容

  • 没有找到相关文章

最新更新