2017-12-05 34 views
-1

$httpリクエストの応答が "angularjs"になるまで待つ方法を教えてください。 ajaxで は、成功した方法は、このようなasync = falseを設定する

jQuery.ajax({ 
    url: '/Something/Index', 
    success: function (result) { 
     result; 
    }, 
    async: false 
}); 

であるが、その存在angularjs.Isこのためのいずれかの方法で$のHTTPリクエストに動作していませんか?

答えて

0

あなたはAngularJSで$httpサービスによって返された約束を使用して.then機能を使用することができます。これにより、最初の関数応答が受信され、.then関数内のコードのみが実行されます。

のサンプルコードは、以下のように次のようになります。

var app = angular.module("app", []); 

app.factory('myService', function ($http) { 
    return {    
     serverCall: function() { 
      return $http.get('/Something/Index').then(function (response) { 
       console.log(response); 
       return response; 
      }); 
     }    
    }; 
}); 

app.controller("myController", function ($scope, myService) { 

    $scope.GetDataFromServer = function() { 

     // make the ajax call 
     var myData = myService.serverCall(); 

     // this executes after that ajax call is completed 
     myData.then(function (result) {     
      $scope.data = result;     
     }); 

    }; 
}); 
+0

ありがとうございます。コードは完全な使用です。 – achu

+0

クール、それがあなたに役立った場合、それを答えとしてマークしてください:) –

0
$http.get("url") 
    .then(response => { 
     // async success callback 
    }) 
    .catch(err => { 
     // async error callback 
    }); 
+0

応答はこれが私の質問である「angularjs」には、$ HTTPリクエストから来るまで待つことをどのように? – achu

+0

応答が戻るまで待ちます。これは約束です。約束についてもっと知っておく必要があります。 Google js promise – donquixote

関連する問題