如何在angular2应用程序中初始化ag-grid api

前端之家收集整理的这篇文章主要介绍了如何在angular2应用程序中初始化ag-grid api前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用angular2和typescript构建的应用程序.
我正在使用ag-grid在网格中显示数据,但无法找到网格api.

/// <reference path="../../../typings/jquery/jquery.d.ts" />


import {Component} from 'angular2/core';
import {Hero,HeroService}   from './hero.service';
var gridOptions;
var heroService;
import * as core from 'angular2/core';
declare var ag: any;
ag.grid.initialiseAgGridWithAngular2({ core: core });
@Component({
    selector: 'gridapp',template: `<ag-grid-ng2 #gapp class="ag-fresh" style="height: 300px; width:850px" [gridOptions]="gridOptions" [columnDefs]="columnDefs" [rowData]="rowData" enableSorting="true" enableColResize="true" enableFilter="true"></ag-grid-ng2>`,directives: [(<any>window).ag.grid.AgGridNg2],providers: [HeroService]
})
export class GridViewComponent {

    private columnDefs: Object[];
    private rowData: Object[];



    constructor(private _heroService: HeroService) {
        console.log("in Grid constructor...");
        heroService = this._heroService;
        this.columnDefs = [
            { headerName: "ID",field: "id",sortingOrder: ["asc","desc"],editable: false,width: 100 },{ headerName: "Name",field: "name",hide: false },];

        heroService.getHeroes()
                .then(heroes =>
                    this.rowData = heroes
        );

        gridOptions = {
            enableSorting: true,rowData: this.rowData,columnDefs: this.columnDefs,onReady: function() {
                gridOptions.api.sizeColumnsToFit();
                alert(gridOptions.api);
            }

        }


    }


}

现在,当我尝试执行this.gridOptions.api的任何方法时,它会抛出错误“gridOptions.api未定义.ag-grid site上提到的示例不适用于typescript和angular2.

如何在angular2中使用typescript初始化和使用gridApi?

解决方法

您希望将gridOptions初始化为类的属性,而不仅仅是变量.所以它应该是this.gridOptions:

constructor(private _heroService: HeroService) {

    console.log("in Grid constructor...");

    this.columnDefs = [
        { headerName: "ID",hide: false }
    ];

    this._heroService.getHeroes().then(heroes => this.rowData = heroes);

    this.gridOptions = {
        enableSorting: true,onReady: () => {
            this.gridOptions.api.sizeColumnsToFit();
            alert(this.gridOptions.api);
        }
    }
}

猜你在找的Angularjs相关文章