2017-12-05 3 views
-1

Wie warten, bis die Antwort von der $http Anfrage in "angularjs" kommt? In ajax, ist eine erfolgreiche Methode async = false wie folgt zu setzen,

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

aber es ist nicht in $ HTTP-Anfrage in angularjs.Is arbeitet es eine Methode dafür?

Antwort

0

können Sie das Versprechen von $http Dienste in AngularJS zurück verwenden und .then-Funktion verwenden. Dies stellt sicher, dass die erste Funktionsantwort empfangen wird und dann nur der Code innerhalb der .then Funktion ausgeführt wird. wie unten

wäre ein Codebeispiel sein:

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

Vielen Dank..Der Code ist voll. – achu

+0

cool, bitte markieren Sie es als Antwort, wenn es Ihnen geholfen hat :) –

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

Wie warten, bis die Antwort der Anfrage $ http kommt, in „AngularJS“ Das ist meine Frage? – achu

+0

dann wartet, bis die Antwort zurück ist, dies heißt Versprechen, sollten Sie mehr über Versprechen wissen. Google Js Versprechen – donquixote