#angular
#angular
Вопрос:
В настоящее время у меня есть массив целых чисел в моем классе компонентов. Шаблон выполняет итерацию по этому массиву и отображает его данные.
Этот массив данных также требуется другим компонентам.
Рекомендуется ли хранить этот массив в службе в виде многомерного массива, чтобы другие классы компонентов могли его использовать? (многомерно, поскольку может присутствовать несколько экземпляров компонента)
Ответ №1:
Общие службы используются для совместного использования данных между компонентами. Но,
Остерегайтесь обновления приложения. Если вы обновите страницу, вы потеряете данные, совместно используемые с помощью общей службы.
Итак, вам нужно использовать другой механизм для хранения данных (с общей службой). например. Хранилище HTML5.
Комментарии:
1. я думаю, это нормально, то же самое применимо и к данным, хранящимся в компоненте, верно?
2. Обязательно обратите внимание. Но я думаю, что это не то же самое с component.
Ответ №2:
В общем, да, службы используются для обмена данными между компонентами. Что вы могли бы рассмотреть, так это создание rxjs Subject
в вашей общей службе.
Таким образом, компоненты могут subscribe
обращаться к этому субъекту (наблюдаемому) и автоматически получать последнее значение.
Затем вы могли бы использовать async
канал Angular 2 и заставить Angular 2 подписаться на эти наблюдаемые данные самостоятельно.
Подробнее о async
канале: http://briantroncone.com/?p=623
Подробнее о темах rxjs: http://reactivex.io/rxjs/manual/overview.html#subject
Кроме того, в зависимости от ваших знаний о redux, я предлагаю вам ознакомиться ngrx/store
с тем, что помогает вам управлять состоянием во всем вашем приложении.