Наблюдаемые в Angular 8 - PullRequest
       1

Наблюдаемые в Angular 8

0 голосов
/ 26 февраля 2020

Я новичок в Angular 8, и я столкнулся с одной проблемой в Angular.

У меня есть двухкомпонентный, один - discussion component, а другой - topic component. комментарий к обсуждению имеет другой подкомпонент под названием add-files component, а add-topic component является подкомпонентом topic component.

. Я хочу создать наблюдаемый в компоненте add-files, который будет получать уведомление всякий раз, когда я нажимаю кнопку в компоненте add-topi c.

то, что я делал, вы можете увидеть ниже.

add-files.component.ts

@Input()
  fileEventsAdd: Observable<void>;
  private fileEventsSubscriptionTopic:Subscription;


ngOnInit() {
this.fileEventsSubscriptionTopic = this.fileEventsAdd.subscribe(
      ()=> this.uploader.clearQueue()
      );
}

Теперь наблюдаемое, которое я создал в файлах add-files.component.ts, которые мне нужно вызывать из add-topic component (который является субкомпонентом из topic component), но я не знаю, как я могу это сделать?

topi c и компонент обсуждения находятся на одном уровне, но компонент add-files является вспомогательным. компонент обсуждения, а компонент add-topic является подкомпонентом topic component.

. Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вы можете просто выполнить следующие шаги

1) создать тему как Observable в вашем сервисном файле и добавить это в соответствующие компоненты.

2) затем создать подписку на ngOnInit() метод для этих компонентов. так что он продолжит прослушивание, если будут какие-либо изменения.

3) Каждый раз, когда вы нажимаете кнопку добавления в файловом компоненте topi c. Вы можете вызвать этот метод и передать данные с помощью метода next() из вашего служебного файла.

4) чтобы компоненты, подписывающиеся, получили данные.

5) вы можете проверить ниже ссылка для справки.

0 голосов
/ 26 февраля 2020

Я думаю, что нет причин использовать Observable / Subscription. Лучше показать код. По сути, вам необходимо реструктурировать компоненты и использовать вместо них Input / EventEmitter.

EventEmitter

OnChanges

...