Найдите модель в позвоночнике.коллекция js по cid, а не id
Могу ли я использовать Collection.get (id), чтобы найти модель внутри магистрали.коллекция js по cid для модели, еще не сохраненной на сервере?
Судя по документации, похоже .вам следует найти модель, либо его ID или CID. Однако collection.get(cid) не находит модель, тогда как это делает collection.find(function(model) {return model.cid===cid; }). Вероятно, я упускаю из виду что-то основное.
var Element = Backbone.Model.extend({});
var Elements = Backbone.Collection.extend({ model: Element });
var elements = new Elements(), el, cids = [];
for (var i=0; i<4; i++) {
el = new Element({name: "element"+i})
elements.add(el);
cids.push(el.cid);
}
console.log(cids);
el1 = elements.get(cids[0]);
console.log(el1); // undefined
el1a = elements.find(function(model) { return model.cid === cids[0]; });
console.log(el1a); // success
1 ответ:
В backbone 0.9 (см. changelog ) они удалили метод
.getByCid()и свернули эту функциональность непосредственно в.get()- Если вы используете ниже 0.9.9, вы можете использовать метод.getByCid(); я думаю, что с тех пор они удалили его из документов, чтобы отразить самое текущее состояние библиотеки.Правка:
Смотрите комментарий @Ferdinand Prantl ниже для более подробной информации, но передача
cidв качестве свойства объектного литерала выполнит то, что вы ищете здесь:.get({ cid: "xxx" }). Мой извинения за причиненные неудобства.
Comments