2014-10-08 72 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將會運行。否則,檢查將被忽略。