Angularjs UIGRID:在columnDefs中更改cellFilter没有得到很好的更新

Angularjs UIGRID:在columnDefs中更改cellFilter没有得到很好的更新,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我需要动态更改列的十进制精度。 我尝试过不同的方法,但没有一种有效 我做了一个快速的例子,其中有一个按钮来交换数据。它们有不同的数据和不同的列定义:一个有3个小数,另一个有4个小数。 您可以看到,第一行保持第一种格式 我在gridApi中使用notifyDataChange,但不适用于此类更改: $scope.gridApi.core.notifyDataChange( this.uiGridConstants.dataChange.ALL ); 这对我来说是个问题,因为在我的例子中,我希望保

我需要动态更改列的十进制精度。 我尝试过不同的方法,但没有一种有效

我做了一个快速的例子,其中有一个按钮来交换数据。它们有不同的数据和不同的列定义:一个有3个小数,另一个有4个小数。 您可以看到,第一行保持第一种格式

我在gridApi中使用notifyDataChange,但不适用于此类更改:

$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应该处理这个问题,但无论如何,非常感谢!