我想更新div
使用字符串插值的内容,然后div
立即访问该元素的某些属性。我如何访问更新的元素?
在下面的代码片段中,我如何访问方法中div
元素的更新属性someEventOccurred()
?
这是我的component.js文件(stackblitz 应用程序)
import { Component, OnInit, ViewChild } from '@angular/core';
@Component({
selector: 'my-app',
template: `<div #message>{{ data }}</div>`
})
export class AppComponent {
data = 'default';
@ViewChild('message', {static: false}) message;
ngOnInit() {
setTimeout(() => {
this.someEventOccurred();
}, 1000);
}
someEventOccurred() {
this.data = 'hello world';
// how to run something here only after #message is updated
console.log(this.message.nativeElement.innerText);
setTimeout(() => {
// this runs after 1 second, meanwhile view has been updated
console.log(this.message.nativeElement.innerText);
}, 1000);
}
}
我知道我可以访问更新的元素ngAfterViewChecked()
,但我怎么知道哪个元素发生了变化?我也想知道除了使用这个钩子之外是否还有其他解决方案。
注意:上面的代码片段只是一个示例,在我的真实项目中,someEventOccurred()
当我从远程服务器获得 http 响应时,我会调用它。innerText 也只是一个示例,我将使用元素的不同属性。