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);
    }  

}