Angular - Renderizado DOM en angular

 
Vista:

Renderizado DOM en angular

Publicado por Sakurah (1 intervención) el 22/09/2023 08:05:04
Buenas, tengo que conseguir al entrar en una página (según un parámetro), el scroll se posicione en una sección concreta de la página. El problema lo tengo en que el contenido de la página, se carga de manera dinámica, y al intentar buscar la sección en el componente, es undefined porque el DOM aún no ha sido renderizado.

Este es el código:

1
<div [innerHtml]="text"></div>

1
2
3
4
5
6
7
8
9
ngOnInit() {
 
    this.Service.getText().subscribe(
      (response) => {
        this.text = this.sanitized.bypassSecurityTrustHtml(response[0].description);
 
        var sections = document.getElementsByTagName("section");
 
       this.scroller.scrollToAnchor("titulo");

En este ejemplo "sections" existe (section id="title">, y HTMLCollection [] devuelve el elemento, pero en cambio, al acceder al array de la colección y recuperarlo, es undefined:

1
var sections = Array.from(document.getElementsByTagName("section"))


¿Existe alguna manera de hacer esto que no sea con un setTimeout?.


Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Pedro

Renderizado DOM en angular

Publicado por Pedro (8 intervenciones) el 24/09/2023 09:53:59
En lugar de utilizar el evento OnInit usa el evento AfterViewInit, que se dispara después de renderizar la vista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar