当前位置: 首页 > 知识库问答 >
问题:

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

柯树
2023-03-14

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


    import { Component, OnInit } from '@angular/core';
    import { HttpClient, HttpHeaders } from '@angular/common/http';

    import { AgGridModule} from 'ag-grid-angular';

    @Component({
      selector: 'app-top100sp',
      templateUrl: './top100sp.component.html',
      styleUrls: ['./top100sp.component.css']
    })
    export class Top100spComponent implements OnInit {


      private top100url = 'http://resturl';

      private gridOptions;
      private row_per_page = 20;

      private endpoint;
      private rowData;
      private restDatasource;

      private columnDefs = [
        .
        .
        .
      ];

      constructor(private http: HttpClient) { }

      ngOnInit() {
          this.gridOptions = {
              columnDefs: this.columnDefs,
              rowModelType: 'infinite',
              //datasource: this.restDatasource,
              enableServerSideFilter: false,
              enableServerSideSorting: false,
              pagination: true, 
              paginationPageSize: this.row_per_page
         };
      }

      gridReady($event) {
          console.log("onGridReady "+$event.api.paginationGetPageSize());
          this.restDatasource = {
              rowCount: null,
              getRows: function(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);
                  });
              }   
          };  
          $event.api.setDatasource(this.restDatasource);
      };

    }

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

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

我对Angular UI网格有意见,对Angular 7有类似的解决方案吗?

共有1个答案

濮金鑫
2023-03-14

使用arrow函数定义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);
     });
 }   
 类似资料:
  • 问题内容: 在开发机器上,我的网站运行正常,但是在托管服务器上我遇到了javascript’Sys ‘未定义 错误,并且我的AJAX无法正常工作。 我在上面做了一个示例页面和脚本管理器,请仔细研究。 http://nexapps.com/default2.aspx 按钮和文本框位于AJAX updatepanel中,但是当单击按钮页面时,将回发完整。 注意:托管服务器-IIS7,但我的其他网站在同

  • 问题内容: 在Scala Play中使用AngularJS时,出现此错误。 错误:参数“ MainCtrl”不是函数,未定义 我正在尝试创建包含一周中各天的表格。 请看一下我的代码。我检查了控制器的名称,但这似乎是正确的。注意:此SO答案中使用的代码 index.scala.html MainCtrl.js 问题答案: 从模块名称([myApp])中删除 并添加到html,它应该可以工作。

  • 问题内容: 我正在对WCF服务进行AJAX调用,当我传递数据时,我使用JSON.stringify() 通话返回并在FF和Chrome中正常运行,但在IE8中则无法正常运行。我收到一个错误:“ JSON”未定义 建议? PS我也希望这在IE7中工作 问题答案: 使用json2可以实现一致的跨浏览器实现。 https://github.com/douglascrockford/JSON- js

  • 我一直试图在Twilio Studio流中使用SMS转发创建一个双向对话。我知道在Twilio中设置短信转发有多种方法,我已经成功地使用了它们自己的功能、TwiML和发送消息小部件上的Studio Flow SMS。然而,我正在努力创建一个扩展到一个消息之外的流。我已经在我的流程中添加了短信转发功能,但每次收到响应时,它都显示为“undefined:undefined”,而不是“+15555555

  • 问题内容: 我注意到在这里问了几次同样的问题,我尝试过解决这个问题,但是没有帮助。 我正在学习带蛋头视频的本教程。 但是,当我进入“控制器和控制器之间共享数据”部分时,我无法正常工作。 当我使用Chrome运行它时,在控制台中出现此错误: “参数“ FirstCtrl”不是函数,未定义”。 我真的不知道怎么了 代码与教程中的相同。 的HTML main.js 问题答案: 您的html中有2个未命名

  • 问题内容: 我目前正在尝试返回数据库调用以填充下拉框。但是,当我循环浏览返回的列表时,出现“未定义回调”错误。我已经用两种方法尝试过此代码,但都没有用。 我试过了: 我也尝试过: 两者都给我错误: TypeError:回调未定义 返回的数据对象是我必须从中拉出两部分的数据库对象的列表。 如何解决此“回调”错误,以便可以在函数中使用数据? 问题答案: 回调是在其前任完成操作并返回值后立即执行的函数。