更改网格选项后,UI Grid不会立即更新

时间:2017-01-31 17:48:26

标签: javascript angularjs ui-grid

我正在使用UI Grid模块处理AngularJS项目。我想将行过滤作为选项提供,但不是很多用户需要它并且过滤器框占用了大量空间,因此我想从禁用过滤选项开始,并根据需要启用一个按钮。所以我设置enableFiltering: false并添加了一个运行$scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;的按钮,但点击它似乎没有做任何事情。经过一些测试,我发现如果我从enableFiltering: true开始,单击按钮仍然不会立即执行任何操作,但如果我单击它然后尝试键入其中一个过滤器框,它们将会消失我开始打字的时候(但即使再次点击按钮,仍然不会重新出现)。

我对如何正常工作有任何想法?我已经尝试了$ scope。$ apply(),但这只给了我“错误:[$ rootScope:inprog] $申请已经在进行中。” Plunker:http://plnkr.co/edit/L5bgA4XukmYJaVQHVkgR

1 个答案:

答案 0 :(得分:0)

以下是我想要的:http://plnkr.co/edit/Qyts0zQrltx4QxlOWgob?p=preview

受ui-grip网站示例的启发:http://ui-grid.info/docs/#/tutorial/103_filtering

// Prepare your seasons' array with predefined size . 
const saisons = Array.from({length: 5}, (v, k) => null);

// add seasons  : 

saisons[1] = [null ,{episode: 1, file: "/"}, {episode: 2, file: "/"}, {episode: 3, file: "/"}];

saisons[2] = [null, {episode: 1, file: "/"}, {episode: 2, file: "/"}, {episode: 3, file: "/"}];


//Print the 2ⁿᵈ episode of th 1ˢᵗ season :

console.log(
   saisons[1][2].file
)
  1. 注入uiGridConstant
  2. 添加了gridApi,用于通知数据更改为ui-grid
  3. 点击数据切换时使用gridApi