我在我的所有Backbone集合的超类上创建了此函数:

updateModel: function (_id, updateInfo) {
    for (var i = 0; i < this.models.length; i++) {
        var model = this.models[i];
        if (String(model.get('_id')) == String(_id)) {
            model.set(updateInfo);
            break;
        }
    }
},


该功能的目的是简单地通过给定服务器定义的_id属性来更新模型。

我编写的功能有用吗?还是我应该简单地使用它代替:

collection.add(model, {merge: true});

最佳答案

尝试这个:

updateModel: function (_id, updateInfo) {
    this.some(function (oneModelInfo) {
        if (_id == oneModelInfo._id) {
            oneModelInfo.set(updateInfo);
            return true;
        }
    });
},

07-24 17:05