Я сделал это:
Catalog.Categories.Collection = Backbone.Collection.extend({
fetchOne : function (id, success) {
var result = this.get(id);
if (typeof result !== 'undefined') {
console.log(result, 'result')
success.apply(result);
return;
}
var where = {};
where[this.model.prototype.idAttribute] = id;
var model = new this.model(where);
this.add(model);
console.log(this._idAttr, where, this.model)
model.fetch({success: function () {
success.apply(model);
}});
}
};
Теперь назовите это:
collection.fetchOne(id, function () {console.log(this)});
Больше не нужно гадать, если модель уже находится в коллекции !.Тем не менее, вы должны использовать обратный вызов, поскольку вы не можете зависеть от результата запугивания.Вы можете использовать async false, чтобы обойти это ограничение.