我正在使用PrimeNG DataTable组件,需要访问放置在列模板标记内的元素。
如果使用* ngFor手动生成表格(无需模板),一切正常,但切换到PrimeNG组件后,我的@ViewChildren列表始终为空。
@Component({
...
template: `
<p-dataTable [value]="myList">
<p-column header="Header">
<template let-item="rowData" let-index="rowIndex" pTemplate type="body">
<my-component #myComponent [item]="item"></my-component>
</template>
</p-column>
</p-dataTable>
`,
})
export class MyOtherComponent {
@ViewChildren('myComponent') myComponents: QueryList<MyComponent>;
}
我尝试订阅QueryList更改,并在表行添加或删除后触发事件,但总是得到0长度&#39; _results&#39; array(使用* ngFor数组与组件数量正确同步)。
如果是DataTable
this.myComponents.changes.subscribe((changes) => console.log(changes));
总是返回:
QueryList {_dirty:false,_results:Array [0],_发送者:EventEmitter}
有没有办法让它发挥作用?