PrimeNg:ViewChildren QueryList始终为空

时间:2019-05-13 11:02:07

标签: angular typescript primeng

我在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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

<div *ngIf="rowVisible">
    <p-table #dataTable >
    </p-table>
</div> 

ViewChild()的设置者:

 private dataTableRef: ElementRef;

 @ViewChild('dataTable') set dataTableContent(dataTableContent: ElementRef) {
    this.dataTableRef= content;
 }