Angular 9 Элемент ContentChildren не определен в цикле foreach - PullRequest
0 голосов
/ 25 апреля 2020

У моего родительского компонента есть следующие дочерние элементы

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

У компонента My Table есть

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

В компоненте My 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()), я могу видеть массив, но как только я oop в свойствах элемента, я получаю неопределенный .

Я пробовал

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

Пробовал с {read: DateComponent, descendants:true } и без него. Я также попытался удалить содержимое класса ab c ng, оставив только один контент ng, по-прежнему не работает. Я также пытался вызвать другие свойства, даже простую строку, но она по-прежнему не определена.

Пожалуйста, помогите с поиском realdate или других свойств.

Спасибо.

1 Ответ

0 голосов
/ 25 апреля 2020

Это была глупая мситака, вообще-то. Вместо console.log (this.datechildren.toArray (). ForEach ((element) => element.realdate)); // это возвращает неопределенное значение. Мне пришлось написать this.datechildren.toArray (). ForEach ((element) = > console.log (element.realdate));

...