为什么在重新排序或隐藏在ng-grid之后不会修改columnDefs?

时间:2014-08-04 14:40:18

标签: javascript angularjs show-hide ng-grid

问题:

  • 我正在使用来自服务器的数据加载ng-grid。
  • 我正在更改 ng-grid 中的顺序可见列(使用鼠标,而不是programmaticaly),但是columnDefs是没有更新。
  • 我想在另一台服务器上存储有关新订单/可见性的信息,但如果未更改columnDefs,我不知道如何访问它。

如何以编程方式访问新订单/可见性?

我试过了:

$scope.gridOptions = {
    data: 'someData'
    columnDefs : 'columnDefs',
    enableColumnReordering : true,    // this is how I achieve reordering
    showColumnMenu : true,            // this is how I can specify the visible columns
    ...
};
...
$scope.columnDefs = [{
    ...
}];
$scope.$watch('columnDefs', function() {
    console.log('columnDefs was modified !');
}, true);

“columnDefs已被修改!”消息是:

  • 打印到控制台2次(填充ng网格前1次,填充ng网格后1次)
  • 手动重新排序列/更改某些列的可见性后
  • 未打印

2 个答案:

答案 0 :(得分:2)

尝试gridOptions.$gridScope.columns,在引擎盖下,ng-grid更新此数组以进行排序,冻结,显示/隐藏等。

答案 1 :(得分:0)

如果您想知道用户何时重新排序了某列,您可以收听ngGridEventSorted

$scope.$on ('ngGridEventSorted', function(event, data){
    alert('reordered');
});