Angularjs UIGRID:在columnDefs中更改cellFilter没有得到很好的更新
我需要动态更改列的十进制精度。 我尝试过不同的方法,但没有一种有效 我做了一个快速的例子,其中有一个按钮来交换数据。它们有不同的数据和不同的列定义:一个有3个小数,另一个有4个小数。 您可以看到,第一行保持第一种格式 我在gridApi中使用notifyDataChange,但不适用于此类更改:Angularjs UIGRID:在columnDefs中更改cellFilter没有得到很好的更新,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我需要动态更改列的十进制精度。 我尝试过不同的方法,但没有一种有效 我做了一个快速的例子,其中有一个按钮来交换数据。它们有不同的数据和不同的列定义:一个有3个小数,另一个有4个小数。 您可以看到,第一行保持第一种格式 我在gridApi中使用notifyDataChange,但不适用于此类更改: $scope.gridApi.core.notifyDataChange( this.uiGridConstants.dataChange.ALL ); 这对我来说是个问题,因为在我的例子中,我希望保
$scope.gridApi.core.notifyDataChange( this.uiGridConstants.dataChange.ALL );
这对我来说是个问题,因为在我的例子中,我希望保留相同的数据,但动态更改列的十进制精度
有人知道如何刷新/重新加载新的columnDefs配置吗?
我真的很感激 遗憾的是,刷新/更新网格的常用方法似乎都不能用于此用例 我删除了所有的行,然后在
$timeout
之后重新创建它们,从而使它能够正常工作
我更新了你的装备
主要编辑如下:
$scope.swapData = function() {
$scope.gridOpts.data = []{
$timeout(function() {
if (!$scope.isData2) {
$scope.gridOpts.data = data2;
$scope.gridOpts.columnDefs = columnDefs2;
}
else {
$scope.gridOpts.data = data1;
$scope.gridOpts.columnDefs = columnDefs1;
}
$scope.isData2 = !$scope.isData2;
});
};
看起来在ui网格上有一个github repo
投稿人:
当单元格被删除时,cellFilter将与单元格模板合并
获取/使用模板。它不会实时更新
有可能的解决办法:
colDef.cellFilter = 'date:col.filterFormat'
uiGridApi.core.registerColumnsProcessor(function(columns, rows){
angular.forEach(columns, function(col){
var filterFormat = col.colDef.filterFormat;
if ( filterFormat ){ col.filterFormat = filterFormat; }
});
return rows;
}, 40);
这在我的应用程序中起了作用:)我认为uigrid应该处理这个问题,但无论如何,非常感谢!