Angular2: лучшая практика для уровня данных
Я новичок в Angular2 и учусь на практике. Прямо сейчас мне удалось создать одно из нескольких представлений с родительским компонентом, парой дочерних компонентов и службой базы данных. Теперь я собираюсь перейти к реализации других представлений с соответствующими родительскими и дочерними компонентами.
Приложение должно использовать тот же набор данных, который может быть добавлен / обновлен / удален в других компонентах, поэтому я стремлюсь иметь отдельный слой данных, к которому могут напрямую обращаться все компоненты приложения. Еще больше - мне нужен один и тот же экземпляр службы, чтобы промежуточные данные были доступны везде, и, кроме того, чтобы избежать ненужных поездок в базу данных. Каков наилучший способ определить и использовать такой класс в Angular2?
Обновление В: Итак, теперь, когда у меня есть прямой доступ к переменным одного и того же экземпляра слоя данных во всем приложении, каков наилучший способ работы с переменными внутри компонентов?
а) Должен ли я работать с локальными переменными компонента, которые являются копиями одних и тех же переменных уровня данных (таким образом, загружая, получая и устанавливая их явно), например
this.locations = this.datalayer.locations;
this.selectedLocation;
updateLocation(id) {
this.selectedLocation = id;
this.datalayer.setSelectedLocation(id);
}
getSelectedLocation() {
return this.selectedLocation;
}
или б) я должен работать исключительно с переменными уровня данных, перебирать их, получать и устанавливать их внутри компонента?
updateLocation(id) {
this.datalayer.selectedLocation = id;
}
getSelectedLocation() {
return this.datalayer.selectedLocation;
}
или может есть вариант с?
1 ответ
Я предполагаю, что вам нужен сервис, доступный для всех компонентов, целью которых является взаимодействие с данными.
Вы также хотите услугу, которая является одиночной.
Решение состоит в том, чтобы создать сервис и предоставить его на уровне приложения.
Узнать больше: