angular2

时间:2017-02-24 17:52:05

标签: angular typescript ag-grid

我正在创建一个应用程序,我在其中使用Ag-Grid api在网页上列出我的数据库内容。 Ag-grid有一个预定义的api来获取所选的行内容。

这是我的代码:

export class customer_entryComponent{
    public gridOptions:GridOptions;

    constructor(private wakanda: Wakanda){
        this.gridOptions = <GridOptions>{
            context : {
                componentParent : this
            }
        };
        this.gridOptions.columnDefs = this.createColumnDefs();
        this.gridOptions.rowData = this.createRowData();
        this.gridOptions.rowSelection = 'single';
        this.gridOptions.onSelectionChanged = this.onSelectionChanged;
    }

    private onSelectionChanged(){
        console.log(this.gridOptions);
    }
}

当我在onSelectionChanged函数中控制this.gridOptions时,我在控制台中未定义。

提前致谢

1 个答案:

答案 0 :(得分:2)

1)使用bind方法保留上下文this

this.gridOptions.onSelectionChanged = this.onSelectionChanged.bind(this);

2)您也可以使用实例函数

private onSelectionChanged = () => {
    console.log(this.gridOptions);
}

3)或内联箭头功能

this.gridOptions.onSelectionChanged = () => this.onSelectionChanged();