AngularJS强制验证或等待$scope.myForm.$有效刷新
发布时间:2020-12-17 17:19:05 所属栏目:安全 来源:网络整理
导读:我更新了我的 Javascript中的$scope,我想知道表单现在是否有效.如何强制进行验证或等待Angular运行验证? 这是一些示例代码.当我单击按钮时,$scope.validateA = true会使表单无效,但不会立即生效.所以在下一行代码中,如果我查看$scope.abForm.$valid,它仍然
我更新了我的
Javascript中的$scope,我想知道表单现在是否有效.如何强制进行验证或等待Angular运行验证?
这是一些示例代码.当我单击按钮时,$scope.validateA = true会使表单无效,但不会立即生效.所以在下一行代码中,如果我查看$scope.abForm.$valid,它仍然是真的. var validationApp = angular.module('validationApp',[]); validationApp.controller('mainController',function($scope) { $scope.submitA = function() { $scope.validateA = true; //force validation to run here?? alert($scope.abForm.$valid); }; }); <div ng-app="validationApp" ng-controller="mainController"> <form name="abForm"> a <input ng-required='validateA' ng-model='a'> <button type="button" ng-click="submitA()">submit a</button> </form> </div> See the sample in Plunker 解决方法
你是对的,Angular还没有$消化表单中的更改,以便设置表单的有效/无效属性.
您需要等待下一个$digest周期.你不能强迫它,但是你可以等待它,如果你在没有等待时间的情况下使用$timeout,你可以强制你的警报语句等待下一个$digest周期,表格的任何输入都将被验证. http://plnkr.co/edit/mjPuDPhS8bnbN15lO7yF?p=preview 我把它添加到你的plunker: validationApp.controller('mainController',function($scope,$timeout){ $scope.submitA = function(){ $scope.validateA = true $timeout(function(){ alert($scope.abForm.$valid); }); }; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |