Подтвердить что ты не робот

Выборка в базовой модели с идентификатором

У меня есть список элементов, и нажатие на них должно привести к деталям пользователя (другое представление). В моем маршрутизаторе у меня есть такой маршрут для этого:

'details/:id'   :   'details',

Теперь, в деталях, функция должна получить мой объект (Fetching вызовет визуализацию нового представления). Но что я должен делать, чтобы базовая единица привязывала id элемента к model.url? Теперь у меня есть два способа:

Создайте URL-адрес на лету при выборе:

this.realty_object.fetch({url: SITE_PATH + 'blah/blah/' + id});

И что-то вроде этого:

this.realty_object
    .set({id : id}, {silent: true})
    .fetch();

Но я сомневаюсь, что это правильные решения. Как это должно быть? В чем разница между model.urlRoot и model.url().

4b9b3361

Ответ 1

Правильный ответ заключается в использовании свойства urlRoot модели. Если он настроен, идентификатор модели будет добавлен к этому URL при извлечении. Таким образом, это может выглядеть так (объекты имеют разные имена от того, что находится в моем первом сообщении, но идея одинакова - выбор одной модели по id):

Group = Backbone.Model.extend({
    urlRoot: SITE_PATH + 'group/index',
});

И в пути:

this.group = new Group({id: id});
this.group.fetch();

Ответ 2

взгляните сюда, он прекрасно объясняет, какое лучшее решение для получения отдельных моделей

вы использовали бы функцию для компоновки url, как свойство модели. используя .isNew() по крайней мере, это то, как я это делал какое-то время, я считаю, что это лучше, чем создавать URL-адрес при получении каждый раз, когда вам что-то нужно.

Как получить одну модель в Backbone?