Как я могу получить доступ к некоторой модели в коллекции Backbone

У меня есть коллекция моделей:

city = new M.City
App.citiesList = new C.CitiesList model: city
App.citiesList.fetch()

Как я могу получить доступ к модели, например, с помощью id=15?

Мне нужно что-то вроде App.citiesList.find(15).name(), где name() — функция модели

Когда я пытаюсь добавить функцию find в коллекцию, она неверна.
Когда я пытаюсь перебрать App.citiesList.models - я вижу только одну модель или что это такое.. На самом деле я не знаю.

Большое спасибо!


person ValeriiVasin    schedule 31.01.2012    source источник


Ответы (1)


Если App.citiesList является коллекцией Backbone, вам следует использовать get:

get collection.get(id)
Получить модель из коллекции, указанной id.

Итак, это даст вам вашу модель из коллекции:

fifteen = App.citiesList.get 15

И если вы хотите вызвать для него метод:

App.citiesList.get(15).name()

Вы, вероятно, захотите сначала убедиться, что получили что-то от App.citiesList.get 15 (если, конечно, вы не знали, что это там). Поскольку вы работаете в CoffeeScript, вы можете использовать оператор существования следующим образом:

name = App.citiesList.get(15)?.name()
#----------------------------^

чтобы получить имя 15 или undefined в переменной name.

Метод find для App.citiesList будет find Underscore, и он не находит объект с определенным идентификатором.

person mu is too short    schedule 31.01.2012