我在ngIf
中使用了Primeng Datable。每当ngIf
条件发生变化时,我都需要访问嵌入式DataTable
:
<div *ngIf="rowVisible">
<p-table ...>
</p-table>
</div>
我的组件代码是:
import { DataTable } from 'primeng/primeng';
@Component({
moduleId: module.id,
templateUrl: 'search.component.html',
})
export class SearchComponent {
@ViewChildren(DataTable) public dataTable: QueryList<DataTable>;
public ngAfterViewInit(): void
{
this.dataTable.changes.subscribe((comps: QueryList<DataTable>) =>
{
if (comps.length > 0) {
comps.first.reset();
}
});
}
}
但是,每次dataTable
可以观察到的变化中,comps.length
就是0
。
有什么想法吗?
答案 0 :(得分:0)
<div *ngIf="rowVisible">
<p-table #dataTable >
</p-table>
</div>
ViewChild()的设置者:
private dataTableRef: ElementRef;
@ViewChild('dataTable') set dataTableContent(dataTableContent: ElementRef) {
this.dataTableRef= content;
}