我有两个简单的要求
a) I need to programmatically change the number of columns displaying in igGrid
b) I need to programmatically update the filters in igGrid
我的印象是,要以编程方式更改列数,您首先需要“销毁”网格,然后重新创建它。
要更新过滤器,您只需执行此操作
grid.igGridFiltering("filter", ([{ fieldName: "Column1", expr: true, cond: "true" }]));
调用我的代码时总是出现此错误
cannot call methods on igGridUpdating prior to initialization; attempted to call method 'destroy'
这是一个代码片段
scope.changeView = function(v) {
var grid = scope.element; //from directive
if (grid.data("igGrid") != null) {
grid.igGrid('destroy');
}
updateGrid(grid, v);
};
function updateGrid(grid, v) {
scope.gridOptions = coreFunctions.gridOptions(); //from service
scope.gridOptions.dataSource = scope.dataSource;
var cols = JSON.parse(v.Json);
cols = cols.fields;
scope.gridOptions.columns = [];
angular.forEach(cols, function(value, index) {
scope.gridOptions.columns.push({ 'headerText': value, 'key': value, width: '200px' });
});
grid.igGrid(scope.gridOptions); //error occurs here!
grid.igGrid('dataBind');
grid.igGridFiltering("filter", ([{ fieldName: "Column1", expr: true, cond: "true" }]));
}