Найдите модель в позвоночнике.коллекция js по cid, а не id



Могу ли я использовать Collection.get (id), чтобы найти модель внутри магистрали.коллекция js по cid для модели, еще не сохраненной на сервере?



Судя по документации, похоже .вам следует найти модель, либо его ID или CID. Однако collection.get(cid) не находит модель, тогда как это делает collection.find(function(model) {return model.cid===cid; }). Вероятно, я упускаю из виду что-то основное.



JsFiddle например ниже



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


Позвоночник.js-id vs idAttribute vs cid

486   1  

1 ответ:

В backbone 0.9 (см. changelog ) они удалили метод .getByCid() и свернули эту функциональность непосредственно в .get() - Если вы используете ниже 0.9.9, вы можете использовать метод .getByCid(); я думаю, что с тех пор они удалили его из документов, чтобы отразить самое текущее состояние библиотеки.

Правка:

Смотрите комментарий @Ferdinand Prantl ниже для более подробной информации, но передача cid в качестве свойства объектного литерала выполнит то, что вы ищете здесь: .get({ cid: "xxx" }). Мой извинения за причиненные неудобства.

Comments

    Ничего не найдено.