动态更改配置设置ng-grid

时间:2014-05-01 14:15:37

标签: javascript angularjs angular-ui ng-grid

我要做的是在gridOptions中使用“showSelectionCheckbox:”设置并将其从false更改为true并使我的ng-grid显示或隐藏ng-grid默认复选框。

我的代码成功更改了值,但更改未反映在网格上。

$ scope.saveTest()绑定到一个带有ng-click的按钮。

$scope.gridOption = {
  data: 'myData', 
  showSelectionCheckbox: false, 
  ....
} 

$scope.saveTest = function () {
  $scope.gridOption.showSelectionCheckbox = true;
}

所以我的问题是,是否可以使用ng-grid动态更改配置设置?是否有可以监听的事件来刷新网格?

2 个答案:

答案 0 :(得分:1)

无法动态更改 showSelectionCheckbox 属性,但总是存在使用2个网格并根据选择显示其中一个网格的丑陋变通方法。

示例:

HTML:

<button ng-click="changeGrid()">test</button>     
<div class="gridStyle" ng-if="!showSelectionCheckbox" ng-grid="gridOptions"></div>
<div class="gridStyle" ng-if="showSelectionCheckbox" ng-grid="gridOptions2"></div>

JS:

var app = angular.module('myApp', ['ngGrid']);

app.controller('MyCtrl', function($scope, $http) {
  $scope.showSelectionCheckbox=false;
    $scope.myData = [{"name": "Moroni", "allowance": 50},
              {"name": "Tiancum", "allowance": 53},
              {"name": "Jacob", "allowance": 27},
              {"name": "Nephi", "allowance": 29}],

    $scope.gridOptions = { 
        data: 'myData',
        showSelectionCheckbox: false, 
        };
       $scope.gridOptions2 = { 
        data: 'myData',
        showSelectionCheckbox: true, 
        };  

 $scope.changeGrid = function () {
  $scope.showSelectionCheckbox=!$scope.showSelectionCheckbox;
 }
});

实例:http://plnkr.co/edit/4u7iz7R8EKXdoNnoR5MS?p=preview

答案 1 :(得分:0)

当您处理少量数据时,2个网格(隐藏一个并显示另一个)解决方法是一个很好的解决方案,但如果您需要管理数千个记录,则需要从一个网格切换到另一个网格转得很慢。希望(ng-grid)组件的开发人员在不久的将来找到解决这个问题的好方法。