Búsqueda de sitios web

typescript - Angular 2 acceder al componente desde Injectable


No estoy muy seguro de cómo explicar esto, pero daré mi mejor intento.

Tengo un proveedor inyectable que está inicializado en la aplicación principal. El proveedor está intentando acceder a un componente.

Puedo acceder a ese componente usando ViewChild desde otros componentes, pero no puedo desde el proveedor injectable. Creo que es porque el proveedor se inicializa antes que el componente, por lo que no está disponible para la consulta de ViewChild.

¿Existe un método para usar la referencia de ViewChild desde dentro de la función inyectable? Algo así como inicializar los hijos cuando estoy llamando a la función.

Lo siento si esto es confuso, no estoy muy seguro de cómo explicarlo.

Gracias, Radu

Respuesta #1

@ViewChild() consulta la vista. Un inyectable (servicio) no tiene vista, por lo tanto @ViewChild() no puede encontrar una. Además, Angular no procesa las anotaciones @ViewChild() en los servicios en primer lugar, solo en directivas y componentes.

Lo que puedes hacer es consultar usando @ViewChild() y pasar el resultado a un servicio compartido.