Angular 9 ContentChildren元素在foreach循环中未定义。

问题描述 投票:0回答:1

我的Parent组件有以下子代

<app-table>
<div class="abc" #abc>
    <h2>Date</h2>
    <app-date></app-date>
</div>
<app-date></app-date>
<app-date></app-date>
</app-table>

我的Table组件有

<ng-content select=".abc"></ng-content>
...
<ng-content></ng-content>

在我的app-table.ts组件中,我有。

@ContentChildren(DateComponent, {read: DateComponent, descendants:true }) datechildren:QueryList<DateComponent>
...
ngAfterContentInit() {
console.log(this.datechildren.toArray().forEach((element)=>element.realdate));//this returns undefined
}

最后,我的app-date ts有

...
realdate: Date = new Date ();
  intervalID:any;
  constructor() { }

  ngOnInit(): void {
    setInterval(this.intervalID=() => {
      this.realdate = new Date();
   }, 100);
  }

当我尝试 console.log(this.datechildren.toArray())我可以看到数组,但当我循环到元素属性时,我得到的是未定义。

我已经尝试了

this.datechildren.changes.subscribe((changes: any) => console.log(this.datechildren.toArray().forEach((element)=>element.realdate)));

试过有和没有 {read: DateComponent, descendants:true }.我也试过删除abc类的ng内容,只留下一个ng内容,还是不行.我也试过调用其他属性,甚至是一个简单的字符串,还是没有定义。

请帮助检索realdate或其他属性。

谢谢您的帮助。

angular typescript components undefined-behavior angular9
1个回答
0
投票

事实上,这是一个愚蠢的msitake,而不是控制台.log(this.datechildren.toArray().forEach((元素)=>元素.realdate));/this返回undefined我不得不写ethis.datechildren.toArray().forEach((元素)=>控制台.log(元素.realdate))。

© www.soinside.com 2019 - 2024. All rights reserved.