ui-grid动态cellFilter
ui-grid dynamic cellFilter
使用 ui-grid 我想要一个带有动态 cellFilter 的列,这样它就可以更新,例如从 'number' 到 'currency'。我尝试更改列中的参数 cellFilter,但它没有反映在网格中。我也尝试将 cellFilter 引用到像 cellFilter: col.colDef.filter 这样的变量,但得到错误
Error: [$parse:syntax] Syntax Error: Token '.' is an unexpected token at column 33 of the expression [grid.getCellValue(row, col) |col.colDef.filterFormat] starting at [.colDef.filterFormat].
笨蛋:http://plnkr.co/edit/KhR4kbLAT61vAm6AlSCr?p=preview
有什么建议吗?
这应该为您完成,一个利用 angular.copy()
:
的小调整
var app = angular.module('app', ['ui.grid']);
app.controller('MainCtrl', ['$scope', '$http', function($scope, $http) {
$scope.gridOptions1 = {
enableFiltering: true,
columnDefs: [{
field: 'age',
cellFilter: 'currency'
}]
};
$scope.gridOptions = angular.copy($scope.gridOptions1);
$http.get('//cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
.success(function(data) {
$scope.gridOptions.data = data;
});
$scope.updateFilter = function() {
$scope.gridOptions1.columnDefs[0].cellFilter = 'number';
$scope.gridOptions = angular.copy($scope.gridOptions1);
};
}]);
这是一个工作的 Plunker,http://plnkr.co/edit/p3pBKvFH3pJcpps02sN9?p=preview。
如果您还需要什么,请告诉我。很乐意进一步提供帮助。
使用 ui-grid 我想要一个带有动态 cellFilter 的列,这样它就可以更新,例如从 'number' 到 'currency'。我尝试更改列中的参数 cellFilter,但它没有反映在网格中。我也尝试将 cellFilter 引用到像 cellFilter: col.colDef.filter 这样的变量,但得到错误
Error: [$parse:syntax] Syntax Error: Token '.' is an unexpected token at column 33 of the expression [grid.getCellValue(row, col) |col.colDef.filterFormat] starting at [.colDef.filterFormat].
笨蛋:http://plnkr.co/edit/KhR4kbLAT61vAm6AlSCr?p=preview 有什么建议吗?
这应该为您完成,一个利用 angular.copy()
:
var app = angular.module('app', ['ui.grid']);
app.controller('MainCtrl', ['$scope', '$http', function($scope, $http) {
$scope.gridOptions1 = {
enableFiltering: true,
columnDefs: [{
field: 'age',
cellFilter: 'currency'
}]
};
$scope.gridOptions = angular.copy($scope.gridOptions1);
$http.get('//cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json')
.success(function(data) {
$scope.gridOptions.data = data;
});
$scope.updateFilter = function() {
$scope.gridOptions1.columnDefs[0].cellFilter = 'number';
$scope.gridOptions = angular.copy($scope.gridOptions1);
};
}]);
这是一个工作的 Plunker,http://plnkr.co/edit/p3pBKvFH3pJcpps02sN9?p=preview。
如果您还需要什么,请告诉我。很乐意进一步提供帮助。