我的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或其他属性。
谢谢您的帮助。
事实上,这是一个愚蠢的msitake,而不是控制台.log(this.datechildren.toArray().forEach((元素)=>元素.realdate));/this返回undefined我不得不写ethis.datechildren.toArray().forEach((元素)=>控制台.log(元素.realdate))。