我想更改columns: [...]
取决于复选框。
如果我选中该复选框,那么它应该会给我columns: ['model.name' ,'model.department']
当我取消选中时,应将其更改为columns: ['model.name']
- 已删除model.department
angular.module('plunker', [])
.controller('MainCtrl', function($scope) {
$scope.options = {
columns: ['model.name', 'model.department'],
};
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script data-require="angular.js@1.*" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular.js"></script>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<link rel="stylesheet" href="style.css" />
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<li>
<label>
<input type="checkbox" ng-model=options.columns>Department</label>
</li>
</body>
</html>
&#13;
答案 0 :(得分:3)
向控制器中的作用域添加一个函数,以添加或删除该项目,具体取决于是否选中该复选框:
$scope.addRemoveItem = function (checked, value) {
if (checked) {
$scope.options.columns.push(value);
}
else {
var index = $scope.options.columns.indexOf(value);
$scope.options.columns.splice(index);
}
};
然后在更改复选框时使用ng-change调用此函数:
<label><input type="checkbox" ng-model="departmentChecked" ng-change="addRemoveItem(departmentChecked, 'model.department')">Department</label>