@mkrichet

Angular 7: Как подписать на изменение переменной в сервисе?

Доброе время суток!

Изучаю Angular(7), подскажите как правильно подписать на изменение переменной.

сервис MyService
- переменная str
компонент 1
- constructor(public myService: MyService) { }
- ngOnInit() { myService.str = '222' }
компонент 2
- constructor(public myService: MyService) { }
- в шаблоне изменения {{ myService.str }} происходят

Как в компонент 2 подписаться на изменения myService.str(чтобы можно было вызвать функцию по изменению str)?
  • Вопрос задан
  • 1977 просмотров
Пригласить эксперта
Ответы на вопрос 2
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
Комментировать
@p1plop
Для этого вам необходимо использовать RxJs и объявить переменную на которую вы хотите подписаться как Subject
Тогда в первом компоненте вы сможете отправить значение, используя метод next()
ngOnInit() { myService.str.next('222') }
И подписаться на изменения во втором компоненте
constructor(public myService: MyService) {
 myService.str.subscribe(value => {this.someLocalProperty = value })
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы