我有一个多步骤表单,如果他在每个步骤中提交了有效信息,我想控制用户。我正在检查验证,如果是,我转到下一步,但$ scope.form。$ submitted显示为True,并且弹出ng-message。
function stepForward(step){
console.log($scope.AdvertiserRegistration.$valid);
if($scope.AdvertiserRegistration.$valid){
var t = setTimeout(function(){
$scope.AdvertiserRegistration.$submitted = false;
},3000);
window.location = '#/advertiser/register/step'+step;
}
}
所以这是我的功能而且它不起作用:
console.log($scope.AdvertiserRegistration.$valid)
返回True。
任何解决方案?
答案 0 :(得分:0)
使用angular时,任何异步操作都会使您退出角度摘要周期,因此角度团队为这些操作提供服务,其中一个是$timeout
,将代码更改为:
function stepForward(step){
console.log($scope.AdvertiserRegistration.$valid);
if($scope.AdvertiserRegistration.$valid){
//YOU NEED TO INJECT $timeout
var t = $timeout(function(){
$scope.AdvertiserRegistration.$submitted = false;
},3000);
window.location = '#/advertiser/register/step'+step;
}
}