2017-10-17 2 views
-1

私はhttpリクエストから得た応答に応じて異なるdivを表示しようとしています。

$scope.firstStep = true; 
$scope.secondStep = false; 
$scope.thirdStep = false; 

$http({ 
    method: 'GET', 
    url: '/api-web/ec/cadastro/recuperar-acesso', 
    data: { 
    filiacao: $scope.currentFiliacao, 
    cnpj: $scope.currentCNPJ 
    }, 
    headers: {'Content-Type': 'application/json'} 
}).then(function(res){ 
    $scope.firstStep === false; 

    if (res.data.code === -1) { 
    $timeout(function(){ 
     $scope.secondStep === true; //here is the bug, it dont change to true 
     console.log("second", $scope.secondStep); 
    }, 3000) 
    } 
}) 

$適用されますように私は =に、_defer、)(、===からスイッチをいくつかのことを試してみました...と私は、なぜその出来事見当がつかない。

アイデア?

+0

ブレークポイントを正しく設定すると、あなたのコードは 'if(res.data.code === -1){...}'ステートメントで停止しますか? – zero298

+0

。正しい。 – vbotio

+0

'$ scope.firstStep === false;'は、変数を設定することは決してできません。それは価値をチェックしている。 –

答えて

-1

これは機能しませんか?

$timeout(function(){ 
    $scope.secondStep = true; 
    $scope.apply(); 
    console.log("second", $scope.secondStep); 
}, 3000) 
+2

'$ scope.secondStep'を設定して直後に来てダイジェストサイクルが既に起きているので、' $ timeout'の中に '$ scope.apply();'があるとエラーが出ますダイジェストサイクル。 –

+0

実際にタイムアウトが必要な場合を除き、私は '$ timeout'を全く使用しません。 '$ applyAsync'を使用してください – zero298

+0

@ zero298私はOPの$ timeoutの使用がある種のデバッグ目的のためだと推測していますが、間違っている可能性があります。 –

関連する問題