我有一个AngularJS指令,用于检查一组复选框的有效性,这些复选框需要选择一个或多个值。
validateServices 指令可以在我选择和取消选择某些选项时起作用,并且在模型为空时触发错误,但是如果我提交表单时未先触摸任何选项,那么它将被视为有效默认并且提交没有问题,即使它仍然为空。
到目前为止,这是我的代码:
<span used-services-input
name="services"
validate-services
validate-on-change
ng-model="person.usedservices" ng-required="required">
</span>
和指令:
angular.module('account-form-client-de')
.directive("usedServicesInput", function(){
return {
restrict: 'A',
require: 'ngModel',
replace: true,
templateUrl: 'template/directive/used-services-input.html',
scope: {},
controller: function($scope){
(...)
};
}).directive('validateServices', function() {
return {
restrict: 'A',
require: '?ngModel',
link: function(scope, elm, attr, ctrl) {
if (!ctrl) return;
ctrl.$validators.serviceEmpty = function(modelValue, viewValue) {
return (viewValue != undefined) &&
(viewValue.service1 || viewValue.service2 || viewValue.service3 || viewValue.service4);
};
}
};
});
有什么提示吗?