Angular 为什么我在尝试按id获取元素时得到null?
加载模板时,我尝试修改页面中的元素:Angular 为什么我在尝试按id获取元素时得到null?,angular,angular5,Angular,Angular5,加载模板时,我尝试修改页面中的元素: ngAfterContentInit() { var oldParent = document.getElementById('card-list-wrapper'); console.log(oldParent); document.body.innerHTML += oldParent; oldParent.innerHTML = ''; } 模板: <div *ngIf="dataLoaded2" id="c
ngAfterContentInit() {
var oldParent = document.getElementById('card-list-wrapper');
console.log(oldParent);
document.body.innerHTML += oldParent;
oldParent.innerHTML = '';
}
模板:
<div *ngIf="dataLoaded2" id="card-list-wrapper"></div>
但是我得到了
console.log(oldParent)代码>空,为什么?在typescript文件中避免使用普通JS是一种很好的做法:
<div *ngIf="dataLoaded2" id="card-list-wrapper" #card></div>
你能添加相关的HTML吗?或者更好的方法是,创建一个StackBlitz来复制问题。你确定dataLoaded2是真的吗?是的,当然,它是loadedIt,它不是来自异步过程吗?Elemeny卡是通过单击创建的。意思是console.log(this.card.nativeElement)代码>无法找到它
export class elementComponent implements OnInit {
@ViewChild("card", {read: ElementRef}) card: ElementRef;
constructor(private elementRef: ElementRef) {}
ngAfterViewInit(): void {
console.log(this.card.nativeElement);
}
}