Angular ui grid(ng-grid)3:showHeader没有改变任何东西

时间:2015-04-05 07:59:25

标签: angularjs ng-grid

我正在玩这个角度插件。 这是我的问题 - 我正在设置没有标题的网格作为默认值。当我想重新设置网格标题时,通过更改gridOptions.showHeader属性它不起作用。 这是我的切换代码(我已经添加了refresh(),一旦我看到它没有它,但刷新()也没有帮助):

  $scope.toggleHeader = function(){
    $scope.gridOptions.showHeader = !$scope.gridOptions.showHeader;  
    $scope.gridApi.grid.refresh();
  }

这是一个plnkr:http://plnkr.co/edit/eEzSH5hKUTZFbkxiruSt

无论如何要打开和关闭网格标题?

编辑:为了显示这种变化的动机,我已经修改了我的代码,以便在某些gridStatus变量上使用观察者(这可能是任何东西 - 在我的情况下它是最小化的):

http://plnkr.co/edit/1fX6ZuqUt7xANO1P7MMG

1 个答案:

答案 0 :(得分:0)

许多gridOptions不是动态的 - 它们在初始化时设置,然后不重新评估。这是网格目标的一部分,以最大限度地减少观察者的数量(从而最大限度地提高性能)参考:https://github.com/angular-ui/ng-grid/issues/1819

简短的回答是,一旦网格渲染,你就无法轻易改变这一点 - 你要么有一个带有标题的网格,要么有一个没有。但是,您可以重新渲染网格。最简单的方法是在你的网格指令上放置一个ng-if,然后切换它,看起来像这样:

<div ui-grid="gridOptions" ng-if="refresh"></div> function refreshGrid() { $scope.refresh = false; $timeout(function() { $scope.refresh = true; }); };