例如,我在表单中有一个select和一个输入(idcard)。 select确定输入的id-card-type(Tax id,Car license id),我想在输入中添加一个指令来自定义验证其值,验证方法因其类型而异(id-card-type )(由选择确定)。
我正在考虑动态更改指令以进行验证,或者一个指令对所有类型进行验证,但是如何将类型信息传递给指令。
我该怎么办?
答案 0 :(得分:0)
您可以在没有指令的情况下执行此操作:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.type = 'tax';
$scope.yourForm = {};
$scope.yourForm.inputType = {};
$scope.yourForm.inputType.$valid = false;
$scope.validate = function(type, text) {
// return boolean based on your validation for the input string and type (tax or car)
$scope.yourForm.inputType.$valid = (type === 'tax');
}
}

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<form name="yourForm">
<select ng-model="type" ng-change="validate(type, text)">
<option>tax</option>
<option>car</option>
</select>
<input type="text" name="inputType" ng-model="text">
input valid: {{yourForm.inputType.$valid}}
</form>
</div>
&#13;
在我的示例中,选择'car'
时输入验证为false。
当然,您可以将所有这些包装成指令。