0

我有一个带有表的组件,它通过@Input 从另一个组件接收 RowData。如何获取当前表的实例。

这是我的html的一部分

<ngx-datatable
        class="material"
        [rows]="inputData"
        [columns]="columns">
</ngx-datatable>

和组件 ts

export class GridComponent implements OnChanges {
 @Input() inputData: [object];

 columns1 = [
  { prop: 'name' },
  { name: 'Gender' },
  { name: 'Company' }
 ];
}
4

1 回答 1

3

@Viewchild是正确的方法,但你应该以另一种方式使用它。

这就是你想要做的。

html:

<ngx-datatable
        #firstTable  
        class="material"
        [rows]="inputData"
        [columns]="columns">
</ngx-datatable>

<ngx-datatable
        #secondTable  
        class="material"
        [rows]="inputData"
        [columns]="columns">
</ngx-datatable>

组件.ts:

export class GridComponent implements OnChanges {
 @Input() inputData: [object]; // This line doesn't look right

 @ViewChild('firstTable') myTable1: DatatableComponent;
 @ViewChild('secondTable') myTable2: DatatableComponent;

 columns1 = [
  { prop: 'name' },
  { name: 'Gender' },
  { name: 'Company' }
 ];
}

您可以查看此页面以供参考: http: //learnangular2.com/viewChild/

添加:

您还可以使用@ViewChildren它来选择所有元素,具体取决于您的需要,此处的文档: https ://angular.io/api/core/ViewChildren

于 2017-11-02T12:06:59.653 回答