我的ngAfterViewInit函数的效果不如预期。我感觉可能是我漏了什么。
ngOnInit() {
this.dataService.getUsers().subscribe((users) => {this.users = users) ;
}
ngAfterViewInit() {
if (document.getElementById('target')) {
document.getElementById('target').scrollIntoView({
behavior: 'auto',
block: 'center',
inline: 'center',
});
}
基本上,我使用
ngAfterViewInint()
函数,在视图完全加载后滚动到当前项目。在ngOnInit()
中,如果我没有调用subscribe()
,而只是放了一个变量,它就可以正常工作。但这不是我要问的问题。我通过在
ngAfterViewInit()
中使用setTimeout()
来解决这个问题。但我不喜欢它。我不喜欢它依赖于超时。我认为应该有更好的解决方案。有什么好的建议吗?谢谢大家。
target
元素是否依赖于请求返回的数据? - Pytth@ViewChildren
是这里的完美解决方案,我已经包含了我的答案,希望有所帮助。 - Muhammed Albarmavi