#angular #typescript #service #components
Вопрос:
хотите, чтобы один компонент получал данные от другого при загрузке страницы
lt;app-headergt;lt;/app-headergt; lt;button (click)="sendProductData()"gt;send datalt;/buttongt; lt;router-outletgt;lt;/router-outletgt;
Комментарии:
1. почему вы против использования сервиса? Это было бы хрестоматийным использованием сервиса 🙂 … если только мы не говорим о взаимодействии между родителями и детьми (не маршрутизатор-розетка).
2. я пользуюсь сервисом,но я создал кнопку. данные передаются в службу, и другой компонент подписывается на них, когда я нажимаю эту кнопку. я хочу, чтобы служба получала эти данные без нажатия каких-либо кнопок. когда я перезагружаю страницу, я хочу, чтобы один компонент автоматически получал эти данные
3. Ах да, извините, был идиотом и неправильно истолковал название!
4. вы пробовали использовать BehaviorSubject ?
5. возможно, вы захотите вызвать метод «sendProductsData()» внутри ngOnInit (), не так ли ?
Ответ №1:
Два случая здесь:
- ваши данные уже загружены в ваш сервис, когда загружены два компонента. В этом случае просто поместите подписку в обоих компонентах в
ngOnInit
крючок и получите данные. - Ваши данные извлекаются только при нажатии кнопки, в этом случае подписка, как и сейчас, загружается по щелчку.
Подумайте о доступности данных во время жизненного цикла приложения и о том, в какой момент компоненты вступают в игру!