angular7 ag-grid this.http 是未定义的错误

Posted

技术标签:

【中文标题】angular7 ag-grid this.http 是未定义的错误【英文标题】:angular7 ag-grid this.http is undefined error 【发布时间】:2019-09-12 11:39:09 【问题描述】:

我尝试在 angular7 中使用 ag-grid,我的代码如下所示:

从'@angular/core'导入组件,OnInit; 从“@angular/common/http”导入 HttpClient, HttpHeaders ; 从'ag-grid-angular'导入 AgGridModule; @零件( 选择器:'app-top100sp', templateUrl: './top100sp.component.html', styleUrls: ['./top100sp.component.css'] ) 导出类 Top100spComponent 实现 OnInit 私人 top100url = 'http://resturl'; 私有网格选项; 私有 row_per_page = 20; 私有端点; 私有行数据; 私人休息数据源; 私有 columnDefs = [ . . . ]; 构造函数(私有http:HttpClient) ngOnInit() this.gridOptions = columnDefs:this.columnDefs, rowModelType: '无限', //数据源:this.restDatasource, enableServerSideFilter: false, enableServerSideSorting:假, 分页:真实, paginationPageSize:this.row_per_page ; 网格就绪($事件) console.log("onGridReady "+$event.api.paginationGetPageSize()); this.restDatasource = 行数:空, getRows:函数(参数) console.log(params.startRow + " to " + params.endRow); this.endpoint = this.top100url + "/"+ params.startRow +"/" + params.endRow; this.http.get(this.endpoint).subscribe((results) => //console.log(结果); //this.rowData = 结果; params.successCallback(结果, 20); ); ; $event.api.setDatasource(this.restDatasource); ;

页面初始化时,我在 javascript 控制台中收到以下错误。

ERROR TypeError: "this.http is undefined"

为什么 this.http 是未定义的?我通过构造函数注入它。

我对 Angular UI Grid 有经验,Angular 7 有类似的解决方案吗?

【问题讨论】:

【参考方案1】:

使用箭头函数定义getRows方法。

getRows = (params) => 
     console.log(params.startRow + " to " + params.endRow);
     this.endpoint = this.top100url + "/"+ params.startRow +"/" + params.endRow;

     this.http.get(this.endpoint).subscribe((results) => 
        //console.log(results);
        //this.rowData = results;
        params.successCallback(results, 20);
     );
    

【讨论】:

以上是关于angular7 ag-grid this.http 是未定义的错误的主要内容,如果未能解决你的问题,请参考以下文章

Ag-grid 不会在 JHipster 应用程序中呈现(Angular 7 + Webpack 4)

ag-grid angular - 选择更改时刷新组行

在 ag-grid 中使用自定义单元格渲染器时无法读取未定义的属性“导航”

ag-grid :- enableMultiRowDragging 在 ag-grid 24 中不起作用

AG-GRID 无法将图标按钮添加到我的 ag-grid 中的 ag-grid 和多选复选框的每一行

ag-Grid:toolPanel 仅在 ag-Grid Enterprise 中可用