Necesito un código jQuery para ejecutar después de que mi vista de componente Angular se haya inicializado para transformar los valores numéricos en estrellas.
Puse el código en la función ngAfterViewInit, pero no está haciendo lo que necesito. Establecí un punto de interrupción en la función y veo que la mayor parte del HTML de mi componente ni siquiera se ha cargado cuando se llama a la función ngAfterViewInit. Las partes que no se han cargado se generan usando la directiva *ngFor.
¿Cómo puedo hacer que mi código se ejecute después de que esta directiva haya generado todo el html en el que necesito operar?
Es importante tener el implements para que el metodo se pueda ejecutar y se llama cada vez que se corra el programa
class Component implements AfterViewInit {
ngAfterViewInit() {
// ...
}
}¿Cuándo se llama a ngAfterViewInit?
Se debe llamar a ngAfterViewInit() después de crear la vista de un componente y las vistas de sus hijos. Probé esto y descubrí que los ngAfterViewInit() de los niños se llaman antes que los ngAfterViewInit() de los padres.
Cuando dice "la mayor parte del HTML de mi componente ni siquiera se ha cargado", ¿qué quiere decir con "cargado"? ¿Está el HTML en la plantilla del componente secundario o se está cargando (o generando) por algún otro medio?
¿Cómo puedo hacer que mi código se ejecute después de que esta directiva haya generado todo el html en el que necesito operar?
Sería útil ver el código de la directiva. Si la directiva de alguna manera genera HTML que no está contenido en las plantillas angulares, es posible que deba activar manualmente un evento (por ejemplo, usando una propiedad de salida) para notificar al padre cuando se haya completado el procesamiento. O podría usar setTimeout() (pero eso no sería confiable).
Necesito un código jQuery para ejecutar después de que mi vista de componente Angular se haya inicializado para transformar los valores numéricos en estrellas.
¿De dónde obtienes estos valores numéricos? Si se cargan dinámicamente desde un servidor, podría desencadenar un evento cuando lleguen los datos y actualizar la vista en ese momento.
Además, ¿por qué no escribir un componente que tome un número como propiedad de entrada y genere estrellas usando NgFor ?