Soy nueva en Angular 8 y estoy enfrentando un problema en Angular.

Tengo dos componentes, uno es discussion component y otro es topic component. el comentario de discusión tiene otro subcomponente llamado add-files component y add-topic component es el subcomponente de topic component.

Quiero crear un observable en el componente de agregar archivos que será notificado cada vez que haga clic en un botón en el componente de agregar tema.

Lo que hice se puede ver a continuación.

add-files.component.ts

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


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

Ahora el observable que creé en los archivos add-files.component.ts que necesito llamar desde add-topic component (que es el sub-component de el topic component) pero no sé cómo puedo hacer esto?

El tema y el componente de discusión están en el mismo nivel, pero el componente de agregar archivos es el subcomponente del componente de discusión y el componente add-topic es el subcomponente de topic component.

¿Puede alguien ayudarme con esto?

0
Jayesh Vyas 26 feb. 2020 a las 15:30

2 respuestas

La mejor respuesta

Solo puedes seguir los pasos a continuación

1) cree un tema como Observable en su archivo de servicio e instálelo en sus componentes respectivos.

2) luego cree una suscripción en el método ngOnInit() para estos componentes. para que siga escuchando si hay cambios.

3) Cada vez que hace clic en el botón Agregar de su componente de archivo de tema. puede llamar a ese método y emitir los datos con el método next() desde su archivo de servicio.

4) para que los componentes que se suscriban obtengan los datos.

5) ¿puede verificar a continuación enlace para su referencia.

1
pavan kumar 26 feb. 2020 a las 15:03

Creo que no hay ninguna razón para usar Observable / Suscripción. Mejor deberías mostrar algo de código. Básicamente, debe reestructurar los componentes y utilizar Input / EventEmitter en su lugar.

EventEmitter

OnChanges

-1
Hoàng Kha Đinh 26 feb. 2020 a las 13:19