web-dev-qa-db-ja.com

AngularJS ReferenceError:$ windowは定義されていません

ユーザーがフォーム検証(ユーザー名とパスワードをデータベース値と照合する)に合格した場合、ユーザーをリダイレクトしようとしています。

検証は正常に機能しますが、私の.Success関数ではリダイレクトは機能していないようで、「ReferenceError:$ window is not defined」というエラーが生成されます。

コードは次のとおりです。

.success(function(data) {
    console.log(data);

        if (!data.success) {
            // if not successful, bind errors to error variables
            $scope.errorUserName = data.errors.userName;
            $scope.errorUserPassword = data.errors.userPassword;
        } else {
            // if successful, bind success message to message
            $scope.message = data.message;
            $window.location=('Twitter.com');       
    }
});

ロケーションパスを変更しようとしましたが、何も機能していないようです。何か案は?

ありがとう!

怠zyなトトロ

20
user3350593

$windowを注入する必要があります。

注入するには、それをパラメーターとしてコントローラー関数に追加するだけで、Angularが残りを自動的に処理します。

例えば:

app.controller('MyController', function MyController($scope, $window) {

    $window.location = 'http://stackoverflow.com'
});

AngularJS here で依存性注入について詳しく読むことができます。

ページ全体をリロードする必要がない場合は、代わりに $ location を挿入して使用する必要があります。

// get the current path
$location.path();

// change the path
$location.path('/newValue');
45
tasseKATT