AngularJS $ scope.form。$ submit显示为true

时间:2016-06-14 14:46:38

标签: javascript jquery angularjs forms

我有一个多步骤表单,如果他在每个步骤中提交了有效信息,我想控制用户。我正在检查验证,如果是,我转到下一步,但$ 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。

任何解决方案?

1 个答案:

答案 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;
            }

        }