我有一个angularjs页面。我创建了一个自定义指令,以验证嵌套在ng-repeat中的输入元素。现在,验证工作正常,但我还需要它来处理页面加载和页面上发生的更改(例如下拉选中和单击按钮),而不仅仅是当用户更改值时。我还需要添加指令(或验证)以查看此模块上的控制器是否存在过滤器的值。
有什么建议吗?这是我目前的代码:
.directive('myDirective', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, mCtrl) {
function myValidation(value) {
mCtrl.$setValidity('charE', false);
if (value>1){
mCtrl.$setValidity('charE', true);
} else {
mCtrl.$setValidity('charE', false);
}
return value;
}
mCtrl.$parsers.push(myValidation);
}
};
})
这是我对它的呼唤:
<td align="center">
<form name="myForm">
<!--<input name="myInput" ng-model="myInput" required my-directive>-->
<input type="number" name="myInput" ng-model="item.qtyToOrder" ng-model-options="{ updateOn: 'blur' }" ng-change="SavePO(item.qtyToReOrder, item.qtyToOrder, {{$index}})" required my-directive/>
<!--<span>test - {{myForm.myInput.$valid}}</span>-->
</form>
</td>
答案 0 :(得分:0)
也许ngOnInit() {}
可以帮助解决您的问题!
请参阅https://angular.io/docs/ts/latest/api/core/OnInit-interface.html
答案 1 :(得分:0)
能够直接在DOM上完成。
<input ng-class="{ 'has-error': item.qtyToOrder<=0 && filter.vendor !='' }" type="number" name="myInput" ng-model="item.qtyToOrder" ng-model-options="{ updateOn: 'blur' }" ng-change="SavePO(item.qtyToReOrder, item.qtyToOrder, {{$index}})" />