Обработка частичного или сводного списка объектов, возвращаемого GET /models, с использованием ember-data

Для поста ресурса:
Как справиться со следующим сценарием.

GET /posts возвращает массив только со сводкой (т. е. title, commentCount)
, но GET /post/:id возвращает полный объект. (т. е. заголовок, содержание, комментарии: [комментарий1, комментарий2] )

когда приложение загружено, список сообщений отображается на экране, я вызываю App.Post.find() для получения всех сообщений.
И когда элемент нажат, если я пытаюсь загрузить с помощью < strong>App.Post.find(1), возвращает кешированный элемент данных. Один из способов — принудительно загрузить полный пост с сервера.

Изменить
Найдена соответствующая проблема: https://github.com/emberjs/data/issues/51
Я понимаю, что это семантически неправильный способ поддержки REST.
Но еще один вариант использования: запись может быть обновлена ​​​​на сервере, я хочу ее обновить, как это сделать?


person Nachiket    schedule 06.09.2012    source источник


Ответы (2)


Вы можете использовать метод .reload() модели, чтобы повторно получить ее из адаптера. Итак, на вашем маршруте, где вы получаете устаревшие данные, вместо возврата this.store.find('post', 1) возвращайте this.store.find('post', 1).reload().

person David    schedule 04.03.2014

https://github.com/BookingSync/ember-data-partial-model был сделан для решения именно этой проблемы.

person Sébastien Grosjean - ZenCocoon    schedule 16.01.2016