/ / Як зберегти дані за допомогою маршрутизації AngularJS? - json, область, angularjs

Як зберегти дані через маршрутизацію AngularJS? - json, сфера, angularjs

Я новачок у AngularJS і намагаюся створити собі просте маленьке додаток. У мене є дані JSON для того, щоб додаток отримував $resource, і ці дані повинні бути однаковими для кількох переглядів / маршрутів. Однак, коли я переходжу до нового маршруту, дані JSON (зберігаються як $scope.data) більше не доступний для нового перегляду. Що я можу зробити, щоб передати ці дані до нового перегляду та не вимагати іншого отримання? (Додаток-підручник-додаток-телефон-каталог щоразу отримує ці дані з того, що я можу сказати.)

З того, що я розумію, $rootScope може це зробити, але, здається, це взагалі нахмурилося. Прошу вибачення, якщо це не має великого сенсу; я дуже пірнаю в глибокому кінці тут.

Відповіді:

17 за відповідь № 1

Використовуйте послугу для зберігання даних. Введіть цю службу в кожен контролер, який потребує доступу до цих даних. Щоразу, коли контролер створюється та виконується (оскільки ви переходите на інший вигляд / маршрут), він може запитати у служби дані. Якщо служба ще не має даних, вона може надіслати запит на сервер і повернути обіцянку контролеру (див. Нижче, як це зробити). Якщо служба має дані, вона може повернути їх контролеру негайно.

Дивись також Обробка відповіді $ http у сервісі

Зауважте, що служби одинакові, на відміну від контролерів.

Ще одна варіація: коли сервіс створений, він може перенести самі дані, а потім зберегти їх для подальшого використання. Контролери можуть, ніж $ переглядати властивості або функції сервісу. Приклад такого підходу див Як зберігати поточний контекст користувача у Angular?