можно ли передавать данные из одного компонента в другой с помощью сервиса без события щелчка и его метода?

#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:

Два случая здесь:

  1. ваши данные уже загружены в ваш сервис, когда загружены два компонента. В этом случае просто поместите подписку в обоих компонентах в ngOnInit крючок и получите данные.
  2. Ваши данные извлекаются только при нажатии кнопки, в этом случае подписка, как и сейчас, загружается по щелчку.

Подумайте о доступности данных во время жизненного цикла приложения и о том, в какой момент компоненты вступают в игру!