0
我想触发我的,我在一个自定义指令定义了验证:如何从自定义指令触发验证?
angular.module('app')
.directive('validPolicyNumber', function() {
return {
restrict: 'A',
scope:'=brand',
require: '?ngModel',
link: function (scope, element, attrs, ctrl) {
scope.$watch(scope.brand,function(){
ctrl.$parsers.unshift(validate);
ctrl.$formatters.unshift(validate)
});
function validate(value) {
var valid=false;
if (valid) {
ctrl.$setValidity('validPolicyNumber', true);
return value;
}
ctrl.$setValidity('validPolicyNumber', false);
return value;
}
}
}
});
在此输入更改值时,验证被触发:
<input valid-policy-number="claimSearch.brand.value" type="text"
class="form-control" ng-model="claimSearch.polNo" name="policyNumber"
id="polNo" placeholder="Policy Number" value="" required>
然而,验证也依赖于另一个值,即在同一页上的品牌:
<select name="brand" id="brand" class="form-control" ng-model="claimSearch.brand"
ng-options="category as category.name for category in selectInputs.brand"
required>
</select>
我想验证函数触发onc e改变品牌价值。正如你所看到的,我试图用品牌价值的$ watch来确定这是否是正确的方法?当我更改组合框中的品牌价值时,如何才能验证工作?
范围: '=品牌'?尝试使用范围:{'brand':'='} –
我试过这个问题没有解决:( –
我相信你的方法有一些错误......我没有复制一个正在使用的验证器,让你看看。 ..这是一个简单的信用卡验证程序:http://pastebin.com/4msZPLK1 –