And*_*nde 4 angularjs angularjs-scope
我更新了$scope我的Javascript,我想知道表单现在是否有效.如何强制进行验证或等待Angular运行验证?
这是一些示例代码.单击按钮时,$scope.validateA = true表单无效,但不会立即生效.所以在下一行代码中,如果我看一下$scope.abForm.$valid,它仍然是true.
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>
Run Code Online (Sandbox Code Playgroud)
你是对的,因为Angular $digest尚未对表单中的更改进行编辑,以便设置表单的有效/无效属性.
你需要等待下一个$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);
});
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2863 次 |
| 最近记录: |