0
  $scope.results = searchService.CallWeb($scope.userName);

我在我的 angularjs 控制器中使用上面的代码行。该方法searchService.CallWeb()位于进行 jquery ajax 调用的 angularjs 服务中。Jquery ajax 调用已成功执行(我将结果放入 jquery success 内的警报中),但服务方法searchService.CallWeb()在它可以从 ajax 调用获得响应之前返回。因此,我无法将结果返回给我的控制器。我该如何解决?

4

1 回答 1

1

1) 将回调函数发送到服务中,当来自 jQuery 的 ajax 调用完成时,调用回调。在您发送的回调中,填充数组或调用警报或您需要做的任何事情。

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

2) 您也可以使用 Angular 资源来执行此操作。将 jQuery ajax 调用替换为资源调用,而不是从服务返回值,而是返回资源提供的承诺。然后,您可以使用控制器中的承诺来获取数据并对其进行任何处理。

于 2013-08-28T03:54:18.140 回答