小编Adr*_*ght的帖子

如何进行第二次 HTTP 调用来获取详细网格的数据 - getDetailRowData()

我有一个 ag-Grid 主/详细网格设置。因此,当主网格行展开时,它会加载详细网格。

请参阅简单示例: https://www.ag-grid.com/javascript-grid-master-detail/#example-simple-master-detail

这是基于详细网格的数据已经在主网格上使用的原始 json 数据中获取的基础上进行的。

我想获取id主网格所选行的 并进行第二次 HTTP 服务调用以获取详细网格的 json 数据。

简单的示例只是将 json 数据发送到 successCallback,如下所示:

      getDetailRowData: function(params) {
        params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

我尝试将此方法更改为:

      getDetailRowData: function(params) {
        this.http
          .get(
            "https://gist.githubusercontent.com/adrianwright109/37a5e37ba2382b26f42b9d12a8593878/raw/60d2ffed511262a6a2e7e54e01bffd28c3701c5e/ClientProfiles.json"
          )
          .subscribe(data => {
            params.successCallback(data);
          });

        // params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

错误类型错误:无法读取未定义的属性“http”

错误 错误:ag-Grid:当网格位于绘制行的中间时,无法让网格绘制行。当网格处于渲染阶段时,您的代码可能调用了网格 API 方法。为了克服这个问题,请将 API 调用设置为超时,例如,调用 setTimeout(function(){api.refreshView(),0}),而不是 api.refreshView()。要查看代码的哪一部分导致刷新,请检查此堆栈跟踪。

      getDetailRowData: function(params) {
        setTimeout(function() {
          this.http
            .get(
              "https://gist.githubusercontent.com/adrianwright109/37a5e37ba2382b26f42b9d12a8593878/raw/60d2ffed511262a6a2e7e54e01bffd28c3701c5e/ClientProfiles.json"
            )
            .subscribe(data => {
              params.successCallback(data);
            });
        }, 500);

        // params.successCallback(params.data.callRecords);
      }
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

错误类型错误:无法读取未定义的属性“get”

我有一个笨蛋:

https://next.plnkr.co/plunk/IS5a3jKyDJJSSdh0

有没有人通过 Web API 服务调用实现延迟加载详细网格数据?

javascript ag-grid ag-grid-angular

5
推荐指数
1
解决办法
4409
查看次数

标签 统计

ag-grid ×1

ag-grid-angular ×1

javascript ×1