来自angularjs服务的JQuery ajax调用

时间:2013-08-28 03:44:09

标签: jquery angularjs

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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