Передача данных по сравнению с отдельным запросом в AngularJS с использованием ngResource

Я новичок в angular и пытаюсь понять, как лучше всего это сделать.

Допустим, вы настроили фабрику ngResource для получения набора виджетов. Вы возвращаете эти виджеты (GET /api/widgets) и отображаете их на странице в виде списка.

Теперь предположим, что вы можете редактировать эти виджеты в диалоговом окне, нажав кнопку редактирования рядом с объектом в списке. Лучше ли передавать данные отдельного виджета (которые уже были получены первым вызовом $resource) в диалоговое окно редактирования или просто передать параметр ID в диалоговое окно и разрешить его собственный вызов $resource с помощью отдельного вызова GET /api/widgets/:widgetID.

Данные реально не изменятся между загрузкой списка и нажатием кнопки редактирования, поэтому их не нужно синхронизировать с точностью до секунды. Оба эти запроса будут исходить от одной и той же фабрики, но вопрос в том, следует ли вам хранить данные и передавать их или выполнять отдельный запрос.


person Jon Mattingly    schedule 30.01.2015    source источник


Ответы (1)


Я не вижу причин извлекать его снова, я бы просто повторно использовал объект.

person Nicholas Hirras    schedule 30.01.2015
comment
Причина, по которой я спросил, заключается в том, что у меня сложилось впечатление, что угловые модули/и т. д. должны быть независимы друг от друга. В этом случае модальное окно будет зависеть от родителя, отправляющего ему объект. Все в порядке? - person Jon Mattingly; 01.02.2015
comment
Настроена ли ваша маршрутизация/управление состоянием так, чтобы пользователь мог перейти к модальному модулю, не переходя сначала к родителю? Если это так, то может быть проще просто получить его из модального окна. Если нет, то передача существующего объекта имеет смысл. - person Nicholas Hirras; 01.02.2015
comment
нет, они могли попасть в модальное окно, только нажав кнопку редактирования. Не через /api/widgets/:widgetID/edit. Так что я думаю, это работает. Потрясающе, спасибо! - person Jon Mattingly; 01.02.2015