gpt4 book ai didi

javascript - 服务内部的 AngularJS $http 请求

转载 作者:可可西里 更新时间:2023-11-01 15:27:15 27 4
gpt4 key购买 nike

我试图从服务中获取一些数据到 Controller 中,但我一直得到一个 undefined variable 。

angular
.module("classes")
.service("MyService", function ($http) {

this.foo;
$http.get("/classes/all").then(function (response) {
this.fighters = response.data;
this.foo = this.fighters;
console.log(this.foo);
});
console.log(this.foo);

})

当我运行它时,我进入控制台,按照这个顺序,第 11 行是未定义的,然后第 9 行返回数组给我。

当我在 Controller 中尝试获取变量 foo 时,它也显示未定义。

$scope.fooFighters = MyService.foo;

最佳答案

原因是您的 API 调用异步执行。我建议您重写代码以使用将返回 promise 对象的工厂。无需带上不必要的变量。

angular.module("classes").factory("MyService", function($http) {
return {
fighters: function() {
return $http.get("/classes/all").then(function(response) {
return response.data;
});
}
}
})

在你的 Controller 中,你可以通过在 Controller 中注入(inject)服务然后像这样引用它来获取值

 MyService.fighters().then(function(data){
$scope.fooFighters = data;
});

关于javascript - 服务内部的 AngularJS $http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341743/

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