2014-10-08 67 views
0

在ngModel上使用新的$ validators对象,除了复选框之外,我想根据输入字段中的数据验证输入字段。如果复选框在用户输入之前(未)被选中,该指令的工作效果很好,但如果用户完成输入并点击复选框,则不会进行验证。使用两个模型进行验证的角度指令

如果复选框或输入字段发生变化,是否有触发验证的方法?

代码如下所示:

app.directive('denyMultiples', function() { 
    return { 
    require: 'ngModel', 
    scope: { 
     denyMultipleCheck: '=' 
    }, 
    link: function(scope, element, attrs, ngModel) { 
     ngModel.$validators.multiples = function(value) { 
     if(!Array.isArray(value)) { 
      value = value.split(','); 
     } 
     return value.length < 2 || !scope.denyMultipleCheck; 
     }; 
    } 
    }; 
}); 
// HTML 
<input name="items" deny-multiples deny-multiples-check="query.deny_multiples_check" ng-model="items"> 

回答

0

我能够用NG-来确定要做到这一点,如果验证应运行或不

<input name="items" deny-multiples deny-multiples-check="query.deny_multiples_check" ng-required="query.deny_multiples_check" ng-model="items"> 

当复选框被选中,然后$ validator将会运行。否则,检查将被忽略。