Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

281
Vistas
Renderer está obsoleto como un favor para renderer2, ¿alternativa para `invokeElementMethod`?

Para un proyecto paralelo mío, quiero implementar una transmisión de chat en la que se agregue un nuevo mensaje en la parte inferior y las ventanas se desplacen hacia la parte inferior para mostrar el mensaje más reciente.

Para hacer eso, opté por usar ViewChildren en el componente para encontrar el último mensaje (más reciente) y usar scrollIntoView en nativeElement .

Para no llamar al método accediendo directamente a la API DOM nativeElement.scrollIntoView() . Creo que necesitaré usar renderer.invokeElementMethod(nativeElement, 'scrollIntoView') .

El problema es que el renderer está en desuso a favor de renderer2 y parece que no puedo encontrar una alternativa para el método invokeElementMethod en renderer2 .

La pregunta es, ¿hay algún método que me perdí en renderer2 que haga exactamente eso? o tenemos una nueva forma de invocar el método del elemento ahora?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede usar el método selectRootElement de Renderer2 .

Por ejemplo:

 constructor(private renderer: Renderer2) {} this.renderer.selectRootElement('#domElementId').scrollIntoView()

, donde domElementId es id='domElementId' en tu html


ACTUALIZAR

Proporcione un segundo argumento para selectRootElement según la documentación oficial de Angular, ya que se usa para preservar su contenido

selectRootElement(selectorOrNode: any, preserveContent?: boolean): any

 this.renderer .selectRootElement'#domElementId', true) // Supply true for the 2nd arg to make sure your content is preserved. .scrollIntoView() // Or ({ behavior: 'smooth' }) for smooth scrolling
over 4 years ago · Santiago Trujillo Denunciar

0

Respondamos esto con un ejemplo:

En caso de que tengamos una vista como esta:

 <input #inp1 type="text" placeholder="focus on me" />

Dentro ngAfterViewInit() , debe enfocarse de esta manera:

 this.renderer.selectRootElement("inp1").scrollIntoView();
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda