$scope.results = searchService.CallWeb($scope.userName);
我在angularjs控制器中使用上面的代码行。方法searchService.CallWeb()
位于angularjs服务中,该服务进行jquery ajax调用。 Jquery ajax调用已成功执行(我将结果抛出到jquery成功内的警报中),但服务方法searchService.CallWeb()
在它可以从ajax调用获得响应之前返回。因此,我无法将结果返回给我的控制器。我该如何解决这个问题?
答案 0 :(得分:1)
1)向服务发送回调函数,当jQuery的ajax调用完成后,调用回调函数。在您发送的回调中,填充数组或调用警报或您需要做的任何事情。
searchService.CallWeb($scope.userName, function(data){
$scope.results = data;
});
2)您也可以使用Angular资源来执行此操作。用资源调用替换jQuery ajax调用,而不是从服务返回值,返回资源提供的promise。然后,您可以使用控制器中的promise来获取数据并对其执行任何操作。