Angular: nativeElement is undefined on ViewChild
Solution 1:
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