Как мога да получа достъп до някои модели в колекцията 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