0

私のAngularJSアプリケーションでは、実行するページを変更するリクエストごとに:

    $rootScope.$on('$locationChangeStart', function (event, next, current) {
        var user;
        $http.get('/api/Authentication/UserAuthenticated').then(function (data) {
        console.log("call");
         user = data.data;
       });   
      console.log("end of call");
    });

アプリケーションを実行して何が起こっているのかをテストすると、コンソールに「通話の終了」が返される前console.log("call");に表示されます。これは、ユーザーが設定されていないことを意味します。つまり、ルートの変更時にユーザーがログインしているかどうかを確認したい場合、ユーザーは未定義になります。

Angular run-> http リクエストを作成してから続行するにはどうすればよいですか?

4

2 に答える 2

0

使用してasync:falseください。それは私のために働いています

あなたのコードの代わりに、このコードを試してください

$rootScope.$on('$locationChangeStart', function (event, next, current) {
$http({method: 'GET',
            url: '/api/Authentication/UserAuthenticated',                
            async: false
              }).success(function (data) {
            console.log("call");
            user = data.data;
             }
         console.log("end of call");   
 });
于 2014-02-26T11:15:25.377 に答える