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

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

问题描述:

我正在使用Angular 1.x和Ag-grid。首先我很困惑我如何激活企业功能。我现在正在评估我们正在计划购买企业,但支持相当薄弱。未捕获的TypeError:无法读取未定义的属性'setRowData'

现在我试图将数据从ElasticSearch提供给网格的实际问题。我试图模拟像ag-grid的演示。如果更改页面大小,它将从ES服务器检索数据,并使用新的页面大小为新的数据集提供网格。为此,我使用任何操作$ scope.gridOptions.api.setRowData(data)如果我尝试更新网格我的意思是setRowData。我收到错误“method is undefined”它在加载页面时第一次运行。

如何解决此问题?我错过了什么?

功能:这是我调用$ scope.gridOptions.api.setRowData(数据)的功能,我得到错误

“遗漏的类型错误:无法读取属性‘setRowData’的未定义”

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 

该错误表明api不存在。你是否确信在你进行这个调用之前你已经实例化了$ scope.gridOptions?

+0

第一次在第一次加载页面时该如何工作? – user2279564