根据我设置的条件,我在ng-required="valid"
方法中从click事件传递表单(例如:saveData(form))后,在控制器中将true
设置为saveData()
在html中$scope.valid= false
,并需要检查form.$valid
。
但是设置$scope.valid = false
并不会修改我最初已设置为ng-required
的表单true
属性。
<form name="customForm" noValidate>
<input type="text" ng-required="valid"/>
<button ng-click ="saveData(customForm)"></button>
</form>
$scope.valid = true;
$scope.saveData = function(form){
$scope.valid = false;
if(form.$valid){
// ng-required values set to false and take action
}
}
答案 0 :(得分:0)
您不需要将'customForm'传递给函数。只需在控制器中声明即可。 我也不明白为什么需要“有效”变量。 检查工作样本:
<div ng-app="myApp" ng-controller="addCtrl">
<form id="extra-pin" ng-submit="saveData()" name="customForm">
<input type="text" ng-required="valid" name="test" id="test"
ng-model="test"/>
<button type="submit">Submit</button>
</form>
</div>
angular.module('myApp', []).controller('addCtrl', ['$scope' ,function($scope) {
console.log($scope.customForm);
$scope.customForm = null;
$scope.valid = true;
$scope.saveData = function(){
//$scope.valid = false;
//console.log($scope.customForm);
if($scope.customForm.$valid){
console.log($scope.customForm);
// // ng-required values set to false and take action
}
}
}]);