2016-04-21 295 views
2

我正在使用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 

回答

0

該錯誤表明api不存在。你是否確信在你進行這個調用之前你已經實例化了$ scope.gridOptions?

+0

第一次在第一次加載頁面時該如何工作? – user2279564

相關問題