angular ui-网格禁用查看模式编辑

angular ui-grid disable edit for view mode

有没有办法 disable/enable 编辑网格的单元格。例如,我有一个主从表单屏幕。当用户想要分析记录时,我使用 ng-disabled 禁用表单的所有控件。但我无法阻止编辑网格。我尝试了 "cellEditableCondition" 选项。但是,我只在加载网格时运行。如果网格具有 "disableEdit" 之类的选项并接受范围变量,那就太好了。当我在编辑模式下打开表单时,网格将是可编辑的,而在查看模式下网格将被禁用。

我找到了解决办法。您可以使用网格列的 cellEditableCondition 属性。如果将函数应用到此属性,则可以 enable/disable 动态单元格。这是一个笨蛋:

 $scope.canEdit = function () { return $scope.pageOptions.isView; };

 $scope.pageOptions = { isView : false};

$scope.gridOptions1 = {
enableRowSelection: true,
    enableSelectAll: true,
enableFiltering: true,
columnDefs: [
  { name: 'name', width: '30%',cellEditableCondition: $scope.canEdit },
  { name: 'gender',  width: '20%',cellEditableCondition: $scope.canEdit },
  { name: 'age', width: '20%',cellEditableCondition: $scope.canEdit },
  { name: 'company', width: '25%',cellEditableCondition: $scope.canEdit },
  { name: 'state',  width: '35%',cellEditableCondition: $scope.canEdit },
  { name: 'balance', width: '25%',cellEditableCondition: $scope.canEdit }
],
isRowSelectable:function(row){if(row.entity['age']>30) return true; return false;},
onRegisterApi: function( gridApi ) {
  $scope.gridApi = gridApi;
}
};

http://plnkr.co/edit/md9AOA64Zn67KqhNmhZT?p=preview