Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

270
Visualizações
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 precisamente eso? o tenemos una nueva forma de invocar el método del elemento ahora?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda