Javascript 未捕获类型错误:无法读取属性';setRowData';未定义的

Javascript 未捕获类型错误:无法读取属性';setRowData';未定义的,javascript,angularjs,ag-grid,Javascript,Angularjs,Ag Grid,我使用的是带ag网格的Angular 1.x。首先,我对如何激活企业功能感到困惑。我现在正在评估,我们计划收购该企业,但支持力度相当弱 现在的实际问题是,我正在尝试将数据从ElasticSearch提供给网格。我正在尝试模拟ag网格的演示。如果更改pagesize,它将从ES服务器检索数据,并向网格提供具有新pagesize的新数据集。为此,我在任何操作上使用$scope.gridOptions.api.setRowData(data),如果我尝试更新网格,我指的是setRowData。我得到错

我使用的是带ag网格的Angular 1.x。首先,我对如何激活企业功能感到困惑。我现在正在评估,我们计划收购该企业,但支持力度相当弱

现在的实际问题是,我正在尝试将数据从ElasticSearch提供给网格。我正在尝试模拟ag网格的演示。如果更改pagesize,它将从ES服务器检索数据,并向网格提供具有新pagesize的新数据集。为此,我在任何操作上使用$scope.gridOptions.api.setRowData(data),如果我尝试更新网格,我指的是setRowData。我得到错误“方法未定义”,它在加载页面时第一次工作

我如何解决这个问题?我遗漏了什么吗

函数:在这个函数中,我调用$scope.gridOptions.api.setRowData(data)并得到错误

“未捕获的TypeError:无法读取未定义的属性'setRowData'”


该错误表示api不存在。在执行此调用之前,是否确保已实例化$scope.gridOptions?

当页面第一次加载时,它是如何第一次工作的?
function displayGrid(fromDate, toDate, fieldNameArray, affiliate, product,consmb, region, customer, page, pageSize)
  {

   // Constructing Query from dashboard input
        var gridQuery = globalFiltersDrillDown(fromDate, toDate, fieldNameArray, page, pageSize);
        var finalGridQuery = buildQueryForDrillQuery(affiliate,product, consmb, region, customer, gridQuery, "" , false);
        console.log("final Query :" + JSON.stringify(finalGridQuery));
       var data =[];

    setTimeout(function ()
    {
       esClientIndirect.search
          (
            {
              index: esIndex1,
              type: esType1,
              size : pageSize,
              from : page,
              body: finalGridQuery
            },
            function (error, response, status)
            {
              $scope.numberOfRecords = numberCommas(response.hits.total);
              if(error)
              {
                $scope.error = "Error : " + status ;
              }
              else
              {
                var startBrace = "{ ";
                var endBrace = " }"
                data.length = 0;
                var k = 0;
                for(var o in response.hits.hits)
                {
                  var dataFields = response.hits.hits[o].fields;
                  var numberOfElements = fieldNameArray.length -1;
                  var row = startBrace;
                  for (var i in dataFields)
                  {
                    var columnName = fieldNameArray[k];
                    var columnValue =  dataFields[columnName];
                    if (k == numberOfElements)
                    {
                      row += (" \"" + columnName +"\" : \"" + columnValue +"\"");
                    }
                    else
                    {
                      row += (" \"" + columnName +"\" : \"" + columnValue +"\",");
                    }
                    k = k+1;
                  }
                  row += endBrace;
                  k =0;
                  data.push(JSON.parse(row));
                }
                // pushing data into the ag-grid
                setTimeout(function()
                {
                  $scope.gridOptions.api.setRowData(data);
                }, 200);
            }
            }, 100); // end of elastic search call back
            }); // end of elastic search set time out call back