[Fixed] document.getElementById replacement in angular4 / typescript?

Issue

So, im working with angular4 in my practice work and this is new for me.
Luckyly, in order to get html elements and its values i used
<HTMLInputElement> document.getElementById or
<HTMLSelectElement> document.getElementById

Im wondering if there is any replacement for this in angular

Solution

You can tag your DOM element using #someTag, then get it with @ViewChild('someTag').

See complete example:

import {AfterViewInit, Component, ElementRef, ViewChild} from '@angular/core';

@Component({
    selector: 'app',
    template: `
        <div #myDiv>Some text</div>
    `,
})
export class AppComponent implements AfterViewInit {
    @ViewChild('myDiv') myDiv: ElementRef;

    ngAfterViewInit() {
        console.log(this.myDiv.nativeElement.innerHTML);
    }
}

console.log will print Some text.

Leave a Reply

(*) Required, Your email will not be published