Извлечение модели из коллекции BackboneJS / массива UnderscoreJS - PullRequest
0 голосов
/ 30 сентября 2011

Я проверял документы Backbone и Underscore на «правильный» способ извлечь модель (удалить значение и вернуть его) из коллекции.Я знаю, что могу сделать это через прямой доступ через атрибут массива «models» и метод splice, но разве это обход некоторых встроенных способов, которые я пропускаю?

Ответы [ 2 ]

3 голосов
/ 30 сентября 2011

Очень важно использовать встроенный метод «удалить» из коллекции.Удалить выполняет следующее:

  • обновляет встроенный индекс, который используется для collection.getByCid ()
  • обновляет встроенный индекс, который используется для collection.get ()
  • уменьшает значение collection.length
  • удаляет модель (или модели, если вы передаете массив моделей, идентификаторов или cids)
  • запускает событие удаления для коллекции

Если вы манипулируете моделями внутри коллекции напрямую, ничего из вышеперечисленного не произойдет.

Дополнительная информация об удалении: http://documentcloud.github.com/backbone/#Collection-remove

1 голос
/ 30 сентября 2011

Из вашего комментария:

Я хочу удалить модель, скажем, с индексом 5 и вернуть это значение.

Попробуйте это:

// given: myCollection is a Backbone collection

var item = myCollection.at(5);
myCollection.remove(item);

// ... now, do whatever else with `item`...
...