验证嵌套在ng中的输入元素repeat也用于页面加载,而不仅仅用于更改

validate input element nested in ng-repeat also on page load, not only on change

本文关键字:用于 加载 不仅仅 ng 嵌套 repeat 元素 输入 验证      更新时间:2024-04-19

我有一个angularjs页面。我制作了一个自定义指令,以便验证嵌套在ng重复中的输入元素。现在,验证是有效的,但我也需要它来处理页面加载和页面上发生的更改(如选择下拉菜单和单击按钮),而不仅仅是当用户更改值时。我还需要添加指令(或添加到验证中),看看是否有来自该模块上控制器的筛选器值。

有什么建议吗?这是我当前的代码:

.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>

也许ngOnInit() {}有助于解决您的问题!

参见https://angular.io/docs/ts/latest/api/core/OnInit-interface.html

能够直接在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}})" />