Angular等待Ajax完成服务功能
Angular wait for service function Ajax completed
我想从我的控制器得到$http请求的结果。
这是我的服务:
.service('postService', function($http, apiUrl) {
return {
post: function(uri, params) {
$http.post(apiUrl + uri, params).then(function(items) {
return items.data;
});
}
};
})
这里是我在控制器中所做的:
var getData = postService.post('my_service_url', {id: 'test'});
getData.then(function(result) {
$scope.data = result;
console.log(data);
});
但是我发现了错误:
getData是undefined
如何做到这一点?
您需要返回 $http.post
return {
post: function(uri, params) {
return $http.post(apiUrl + uri, params);
}
};
然后你可以连接你的then
:
var getData = postService.post('my_service_url', {id: 'test'});
getData.then(function(result) {
$scope.data = result;
console.log(data);
});
试试angularjs的$q模块:
https://docs.angularjs.org/api/ng/service/美元q
你的服务代码可以像这样:
.service('postService', function($http, $q, apiUrl) {
return {
post: function(uri, params) {
var deferred = $q.defer();
$http.post(apiUrl + uri, params).then(function(items) {
deferred.resolve(items.data);
}, function() {
// error case
deferred.reject();
});
return deferred.promise;
}
};
})
相关文章:
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 可以't访问Angular.js服务中的功能
- 当使用服务工作者时,脱机页面不显示在提取功能中
- 跨源请求阻止Spring REST服务+AJAX
- 检查jquery(或ajax)功能是否已完成
- 无法连接angularjs中的服务功能
- Ajax不调用Web服务
- 在动态功能中缓存ajax请求
- 对 asmx Web 服务的 Ajax/json 调用成功完成,但无法显示结果数据
- 使用Jasmine测试服务功能POST响应
- 如何在AngularJS中从服务调用ajax
- WCF web服务从AJAX发送JSON
- 服务功能中的AngularJS$资源
- 点击激活服务功能
- Web服务Spring ajax调用
- 如何对在线web服务进行Ajax调用
- 处理来自ASP的响应.NET web服务使用Jquery's Ajax功能
- 对web服务的AJAX调用返回[object object]
- Angular等待Ajax完成服务功能
- JQuery对跨域Web服务的ajax调用