使用AngularJS在gridview中选中复选框(全部选中并取消选中)
我试图用AngularJS在网格视图中进行一个简单的检查&取消所有检查,但我发现的所有示例都依赖于ng repeat,任何帮助都将不胜感激 问题是我使用了ng checked来实现我的目标,但是当选中主复选框时,子复选框不会触发onchange事件 因此,我无法根据是否选中子复选框来完成某些更改的任务使用AngularJS在gridview中选中复选框(全部选中并取消选中),angularjs,gridview,checkbox,Angularjs,Gridview,Checkbox,我试图用AngularJS在网格视图中进行一个简单的检查&取消所有检查,但我发现的所有示例都依赖于ng repeat,任何帮助都将不胜感激 问题是我使用了ng checked来实现我的目标,但是当选中主复选框时,子复选框不会触发onchange事件 因此,我无法根据是否选中子复选框来完成某些更改的任务 var ngGridApp = angular.module('gridApp', []); ngGridApp.controller('mainController', ['$s
var ngGridApp = angular.module('gridApp', []);
ngGridApp.controller('mainController', ['$scope', function ($scope) {
$scope.name = "gridCtrl";
$scope.ids = {};
$scope.ConLog = function (val) {
console.log(val);
};
$scope.CheckUnCheckAll = function () {
$scope.$watch('ids', function (newValue, oldValue) {
$scope.ids = newValue;
});
}
}]);
好的,我找到了解决办法。
关键是首先填充数组,以便以后可以使用它,因为我不使用ng repeat,所以我需要首先将我的子复选框绑定到$scope
请发布您当前拥有的代码,并解释为什么您不能或不想使用ng-repeat。因为我使用的是ASP.NET并从DB中填充gridview服务器控件,此gridview呈现为我代码的TableLive示例
var ngGrigApp = angular.module('gridApp', []);
ngGrigApp.controller('mainController', ['$scope', function ($scope) {
$scope.name = "gridCtrl";
$scope.ids = [];
$scope.BindIds = (function () {
angular.element("input[id*=chkBoxSelected]").each(function () {
$scope.ids.push({ "value": this.value, "IsChecked": this.checked });
});
})();
$scope.triggerAll = function () {
angular.forEach($scope.ids, function (obj) {
if ($scope.chkBoxChief) {
obj.IsChecked = true;
}
else {
obj.IsChecked = false;
}
})
}
}]);