page navigationend change angular2 angular dom angular2-template angular2-components

navigationend - router events subscribe angular 4



Angular 2: accede a un elemento desde el Componente, getDocumentById no funciona (2)

Agregue una variable de referencia de plantilla al elemento al que necesita acceder:

<div #myDiv></div>

Y en el componente:

class MyComponent implements AfterViewInit { @ViewChild(''myDiv'') myDiv: ElementRef; constructor() {} ngAfterViewInit() { console.log(this.myDiv); } }

Tengo un componente Angular 2 donde quiero recuperar un elemento div <div id ="myId"> por su id. Intento hacer: document.getElementById("myId") en mi componente (TypeScript), pero document.getElementById("myId") un error: "no puedo encontrar el documento de nombre". Veo que en otras publicaciones podemos hacer algo similar usando @ViewChild, sin embargo, no veo cómo podemos usar esto con un div, ¿alguna idea?


Puede usar @ViewChild con un div agregando un TemplateRef .

Modelo

<div id ="myId" #myId>

Componente

import { Component, ViewChild, ElementRef, AfterViewInit } from ''@angular/core''; @Component({ selector: ''app-root'', templateUrl: ''./app.component.html'', styleUrls: [''./app.component.css''] }) export class AppComponent implements AfterViewInit { @ViewChild(''myId'') myId: ElementRef; constructor() { } ngAfterViewInit() { console.log(this.myId.nativeElement); } }

Esta publicación del blog de Kara Erickson es una muy buena lectura para familiarizarse con el enfoque Angular para hacer cosas como esta.