I want to access the DOM of a component using ViewChild. But when I try to access the nativeElement property, it\'s undefined.
B
If you want to get a reference of an element that hosts a component or directive you need to specify that you want the element instead of the component or directive
@ViewChild('alert', { read: ElementRef }) alert:ElementRef;
See also angular 2 / typescript : get hold of an element in the template
In your case I guess you need two different @ViewChild() one for the component reference to be able to access the show() method, and a 2nd one to be able to access DOM attributes.
Plunker example