Angular2无法读取属性' nativeElement'未定义的

时间:2017-07-11 09:44:57

标签: angular data-binding

您好我正在尝试使用viewChildren和elementRef从html获取数据(在ngFor之后提取),但我正在

Cannot read property 'nativeElement' of undefined

我做错了什么?我也在使用ngAfterViewInit

这些是我的代码(html)

<div id="tutor-price" #myDiv (click)="passCharge(r.value['charge'])"><span id="month">8 Times a month</span> <span id="price"> {{r.value['charge']}} </span></div>

组件

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


@ViewChild('myDiv') myDiv: ElementRef;

  ngAfterViewInit() {
   let el: HTMLElement = this.myDiv.nativeElement as HTMLElement;
   el.click();
 }

通过上面的操作,我想在组件加载完成后自动切换点击事件。

但是我收到了错误。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您将模板变量分配给普通HTMLElement而不是组件代码,这会使myDiv字段属性为HTMLElement而不是ElementRef:< / p>

@ViewChild('myDiv') 
myDiv: HTMLDivElement;

ngAfterViewInit() {
   el.click();
}

答案 1 :(得分:1)

在View初始化后使用ViewChild变量,即使用 -

ngAfterViewInit()