【发布时间】:2016-06-23 16:29:49
【问题描述】:
我一直在使用装饰器指令来创建一个基于先前答案的复选框列表: How do I bind to list of checkbox values with AngularJS?
但是,我想添加一个“顶级”复选框来切换所有复选框的选择。
有没有办法自定义这个指令来实现这个?
编辑(我已经包含了我的代码的精简版):
(function ()
{
var app = angular.module('editFormApp', ['centralCommunicationModule']);
app.directive('editForm', ['sharedProjectService', function (sharedProjectService) {
return {
restrict: 'A',
controller: ['$scope', '$http', '$filter', 'centralCommunicationService', function ($scope, $http, $filter, centralCommunicationService) {
$scope.checked_custGroupMembers = [];
$scope.reschedule = {};
// get reschedule object from server via service when id changes
$scope.$watch(function () { return sharedProjectService.rescheduleId }, function (newVal, oldVal) {
if (newVal != '') {
$scope.rescheduleId = newVal;
$http.get('/Reschedule/Get/', { params: { id: $scope.rescheduleId } }).success(function (data) {
var reschedule = angular.fromJson(data);
$scope.reschedule = reschedule;
});
}
});
}],
templateUrl: '/Forms/_AddEditForm' // MVC controller returning PartialView("~/Views/AngularTemplates/_AddEditForm.cshtml", model);
};
}]);
}
// declare directive in html
<div edit-form></div>
// template _AddEditForm.cshtml snippet below
<div ng-repeat="circulationMember in reschedule.CustGroupCirculationMembers">
<label>
<input name="custGroupMembers" type='checkbox' value="{{circulationMember.FullName}}" check-list='checked_custGroupMembers' id="{{circulationMember.Id}}" /> {{circulationMember.FullName}}
</label>
</div>
【问题讨论】:
标签: javascript jquery angularjs checkbox