2013-08-28 44 views
0
$scope.results = searchService.CallWeb($scope.userName); 

我在我的angularjs控制器內使用上述代碼行。方法searchService.CallWeb()在一個使jQuery Ajax調用的angularjs服務中。 Jquery ajax調用已成功執行(我將結果投入到jquery成功內部的警報中),但服務方法searchService.CallWeb()在它可以從ajax調用獲得響應之前返回。因此我無法將結果返回給我的控制器。我該如何解決?從angularjs服務jQuery ajax調用

+0

可能重複[如何從AJAX調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) –

+1

歡迎來到異步的奇妙世界 –

回答

1

1)發送一個回調函數到服務中,當jQuery的ajax調用完成時,調用回調函數。在您發送的回調中,填充數組或調用警報或您需要執行的任何操作。

searchService.CallWeb($scope.userName, function(data){ 
    $scope.results = data; 
}); 

2)您也可以使用Angular資源來做到這一點。用資源調用替換jQuery ajax調用,而不是從服務返回值,返回資源提供的承諾。然後你可以在你的控制器中使用諾言來獲取數據並做任何事情。