Angular 错误:";document.querySelector(…)为null“;

Angular 错误:";document.querySelector(…)为null“;,angular,typescript,Angular,Typescript,我被困在这里setTimeout(()=>document.querySelector('true').scrollIntoView() 我想在html[style.border]=“detailData.selected?”2.5px solid 35; FD8023“:“为真,滚动将在此处滚动。但结果是错误的 错误类型错误:“document.querySelector(…)为空” 希望有人能帮助我,谢谢 提前感谢。您没有正确的选择器,它应该是: 如果是课堂 setTimeout(() =&

我被困在这里
setTimeout(()=>document.querySelector('true').scrollIntoView()

我想在html
[style.border]=“detailData.selected?”2.5px solid 35; FD8023“:“
为真,滚动将在此处滚动。但结果是错误的

错误类型错误:“document.querySelector(…)为空”

希望有人能帮助我,谢谢


提前感谢。

您没有正确的选择器,它应该是:

如果是课堂

setTimeout(() => document.querySelector('.true').scrollIntoView());
如果它是id

setTimeout(() => document.querySelector('#true').scrollIntoView());
您可以阅读有关querySelector的更多信息

根据评论进行更新

@ViewChild('scrollableDiv') scrollableDiv: ElementRef;

setTimeout(() => {
  this.scrollableDiv.nativeElement.scrollIntoView({ behavior: "smooth", block: "start" });
});
最好使用模板变量和角度来查找视图,如下所示:

<div #scrollableDiv [id]="detailData.key"></div>

您必须使用正确的语法(建议避免
setTimeout
):


您还必须知道,
scrollIntoView()
方法不是完全的交叉浏览器解决方案(超过一半的浏览器不支持使用此方法进行
smooth
滚动)。更多详细信息:

选择器不正确,如果它是class use
。true
并且如果它是id use
#true
谢谢您的回答。。。但是如果我的div中的id像这样
[id]=“detailData.key”
我该怎么办。@Pravu那么你应该使用模板变量,我已经更新了答案。我得到了错误
错误类型错误:“\u this.scrollableDiv.nativeElement未定义”
。。我该怎么办?谢谢你的回答。。。但是如果我的div中的id像这样
[id]=“detailData.key”
我该怎么办。
document.querySelector(".myclass")
document.querySelector("div")
document.querySelector("#id")