gpt4 book ai didi

javascript - 从 Angular 服务返回 http 数据

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:53 25 4
gpt4 key购买 nike

我相信这对任何 Angular/Javascript 专家来说都是一件容易的事。我有一个调用 API 以获取一些数据的服务:

app.service("GetDivision", ["$http", function($http){

this.division = function(divisionNumber){
$http.post("/api/division", {division:divisionNumber}).success(function(data){
return data;
});
}

}]);

现在我在我的一个 Controller 中这样调用它:

$scope.division = GetDivision.division(1);

但是,我的服务不太对劲。它不会在 http 请求函数之外返回值,因此数据不会到达调用它的 Controller 。如何从 http 请求和调用的函数返回数据?

最佳答案

您需要了解您无法从异步操作中返回。当您尝试返回数据时,响应还不可用。通常在 Javascript 中,您会使用回调或 promise 模式。在 Angular 中,promise 是一个非常自然的选择。

app.service("GetDivision", ["$http", function($http) {
this.division = function(divisionNumber){
return $http.post("/api/division", {division:divisionNumber}).success(function(data){
return data;
});
}
}]);

在 Controller 中:

GetDivision.division(1).then(function(data) {
$scope.division = data;
});

请务必阅读关于该主题的这个非常受欢迎的话题:How do I return the response from an asynchronous call?

关于javascript - 从 Angular 服务返回 http 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com