我正在使用Angular 1.x和ag-grid。首先我感到困惑的是如何激活企业功能。我现在正在评估,我们打算购买企业版,但支持非常薄弱。
现在实际的问题是,我正在尝试将数据从ElasticSearch馈送到网格中。我正在尝试模拟ag-grid的演示。如果更改页面大小,它将从ES服务器检索数据,并用新的数据集和新的页面大小填充网格。为此,我在任何操作上都使用$scope.gridOptions.api.setRowData(data)来更新网格。当我尝试更新网格即setRowData时,我会收到“方法未定义”的错误。当它加载页面时,第一次可以工作。
我该如何解决这个问题?我有遗漏什么吗?
函数:这是我调用$scope.gridOptions.api.setRowData(data)的函数,我收到错误信息"Uncaught TypeError: Cannot read property 'setRowData' of undefined"。
现在实际的问题是,我正在尝试将数据从ElasticSearch馈送到网格中。我正在尝试模拟ag-grid的演示。如果更改页面大小,它将从ES服务器检索数据,并用新的数据集和新的页面大小填充网格。为此,我在任何操作上都使用$scope.gridOptions.api.setRowData(data)来更新网格。当我尝试更新网格即setRowData时,我会收到“方法未定义”的错误。当它加载页面时,第一次可以工作。
我该如何解决这个问题?我有遗漏什么吗?
函数:这是我调用$scope.gridOptions.api.setRowData(data)的函数,我收到错误信息"Uncaught TypeError: Cannot read property 'setRowData' of undefined"。
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