我在用Angular2。我有一个div:
<div class="saved" #saved>
<p>Saved</p>
<i class="fa fa-check" aria-hidden="true"></i>
</div>我在ts中访问它:
@ViewChild("saved") public saved: ElementRef;接下来,我将显示这个块:
this.saved.nativeElement.style.display = 'block';然后我想在几秒钟后隐藏它,但是我的代码的这一部分是不正确的:
setTimeout(this.closeSavedWindow, 3000);哪里
closeSavedWindow() {
this.saved.nativeElement.style.display = 'none';
} 错误是
TypeError: this.saved未定义
发布于 2017-12-02 20:26:06
试试setTimeout(this.closeSavedWindow.bind(this), 3000);
发布于 2017-12-02 20:38:43
你所面临的问题是由于环境的变化。在closeSavedWindow()函数中,它引用窗口对象,并且不包含任何名为saved的属性。因此出现了错误。
通过在调用函数时绑定函数的上下文值,可以很容易地解决这个问题。
setTimeout(this.closeSavedWindow.bind(this), 3000);https://stackoverflow.com/questions/47612187
复制相似问题