我有一个Angular表单,它有几个我要验证的输入框,使用通用的JS函数,但需要知道触发事件的控件,以便可以应用某些规则。
(简化代码)
<input ng-model="Field1" ..... ng-change="validateMe()" />
.
.
<input ng-model="FieldX" ..... ng-change="validateMe()" />
$scope.validateMe = function() {
// get the text of the control that fired the event
// do the validation
// update something else if valid value given
}
我知道ng-click
有$event
,但我怎么能从ng-change
答案 0 :(得分:1)
您可以拥有自定义指令,该指令将在自定义更改事件上调用您的控制器方法。
<强>标记强>
<input ng-model="Field1" my-custom-change change-method="validateMe(event)">
<input ng-model="FieldX" my-custom-change change-method="validateMe(event)">
<强>指令强>
app.directive('myCustomChangeEvent', function(){
return {
scope: {
changeMethod = '&'
},
link: function(scope, element, attrs){
element.on('change', function(event){
scope.changeMethod({event: event});
scope.$apply();
});
}
}
})
答案 1 :(得分:0)
请勿在{{1}}中执行此操作。我会用属性指令代替验证。这样,您就可以完全访问相关元素,并可以根据该规则应用自定义验证规则。
ng-change