正如其他地方所建议的那样,
如何在angular2应用程序中初始化Ag-Grid API
我已经在类构造函数中初始化了gridOptions。但是当我尝试设置setColumnDefs时,它仍然给我错误:
TypeError:无法读取未定义的属性“ setColumnDefs”
我在这里还想念什么?
export class ConfigurationComponent implements OnInit {
constructor(
private configurationService: ConfigurationService,
)
{
this.gridOptions = {
enableSorting: false,
rowData: this.tableData,
columnDefs: this.tableColumns,
onGridReady: () => {
this.gridOptions.api.sizeColumnsToFit();
this.gridOptions.api.setColumnDefs(this.tableColumns);
alert(this.gridOptions.api);
}
}
}
tableData: string[] = [];
tableList: string[] = [];
tableName: string;
tableColumns: [{headerName: string, field: string}] = [{headerName: "", field: ""}];
tableRecord: {};
gridOptions: GridOptions;
ngOnInit() {
this.retrieveTableList();
}
retrieveTableList(){
/*blah blah*/
}
retrieveTableData(){
/*blah blah*/
this.configurationService.retrieveTableData(this.schemaFullname, this.tableName).subscribe(data => {
/* GETTING tableColumn HERE from the service*/
this.gridOptions.api.setColumnDefs(this.tableColumns);
}, error => {
console.error(error);
this.alertService.error("Get table data error", "No table data retrieved from data source for " + this.tableName);
})
}
}
如您的评论所述,
现在,我在html中添加了[gridOptions] =“ gridOptions”后,它就可以工作了。
你知道它为什么起作用吗?
就像在代码中一样,您gridOptions
在构造函数中进行定义。在您的onGridReady
函数中,没有人知道从何处添加api
属性(以及sizeColumnsToFit
等方法)。
this.gridOptions = {
enableSorting: false,
rowData: this.tableData,
columnDefs: this.tableColumns,
onGridReady: () => {
this.gridOptions.api.sizeColumnsToFit();
this.gridOptions.api.setColumnDefs(this.tableColumns);
alert(this.gridOptions.api);
}
}
当您添加[gridOptions]="gridOptions"
组件时,ag-grid组件会使用该gridOptions
对象并apis
为您注入其他对象。因此,它随后将起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句