2017-10-09 17 views
1

電子メールでパスワードをリセットしようとしています。電子メールのリセットリンクをクリックしてページをリセットするように指示された後、コンソールは "$ scope.username"値を出力することができますが、右の次の行は定義されていない "username"としてエラーを送出します。 Error ScreenshotコントローラでAngularjsプロパティが未定義です

どこが間違っているかわかりません。ありがとう。

.controller('resetCtrl', function(User, $routeParams, $scope, $timeout, $location) { 

    app = this; 
    app.hide = true; 

    User.resetUser($routeParams.token).then(function(data) { 
     if (data.data.success) { 
      app.hide = false; 
      app.successMsg = 'Please enter a new password'; 
      $scope.username = data.data.user.username; 
     } else { 
      app.errorMsg = data.data.message; 
     } 
    }); 

    app.savePassword = function(regData, valid, confirmed) { 
     app.errorMsg = false; 
     app.disabled = true; 
     app.loading = true; 
     console.log($scope.username); // test output 
     app.regData.username = $scope.username; 
      User.savePassword(app.regData).then(function(data) { 
       app.loading = false; 
       if (data.data.success) { 
        app.successMsg = data.data.message + '...Redirecting'; 
        $timeout(function() { 
         $location.path('/login'); 
        }, 2000); 
       } else { 
        app.disabled = false; 
        app.errorMsg = data.data.message; 
       } 
      }); 
     } 
}); 

答えて

1

あなたは構文としてコントローラを使用しているので、あなたの問題を解決すること、外$scope.username宣言し、app.usernameとしてそれを持っている方が良いです。

+0

ありがとうサジェタラン。しかし、コンソールはエラーの前に "app.username"という値を1行出力することができますが、問題は依然として存在します。 – neo

+0

あなたはどういう意味ですか – Sajeetharan

+0

申し訳ありません私は質問を編集してスクリーンショットを挿入することができなかったことに気付きませんでした。そこで、console.log()関数を使用して、値が変数に渡されているかどうかを確認しました。これは実際にコードとコードの両方のスクリーンショットと同じです。しかし、私がそれを使いたい次の行は、定義されていません。 – neo

関連する問題