gpt4 book ai didi

javascript - 将硬编码数组更改为 $http 回调

转载 作者:行者123 更新时间:2023-11-28 07:45:31 25 4
gpt4 key购买 nike

我想将我的服务从硬编码静态数组更改为从 $http 调用返回的数组。我已尝试在下面执行此操作,但它不起作用。

我可以确认从http返回的数据正在工作并返回正确的数据(我已经出于问题的目的取出了链接)。

我没有收到错误消息,因此目前无法提供任何进一步的信息,但我想知道的是我是否以正确的方式执行此操作。

现在为了这么简单的任务,我的头撞在墙上......

硬编码数组:

.factory('Cards', function($http){
var cardTypes = [
{id: 1, USECASE_NAME: "Frank", USECASE_IMAGE: 'img/Frank.png', USECASE_DESC:"This is frank the bank card, He helps people all over the world make millions of transactions each year!", done: true },
{id: 2, USECASE_NAME: "John Lewis", USECASE_IMAGE: 'img/JohnLewis.png', USECASE_DESC:"John Lewis is one of the biggest retailers in the United Kingdom with a very proud reputation", done: true },
{id: 3, USECASE_NAME: "Generali", USECASE_IMAGE: 'img/Generali.png', USECASE_DESC:"Generali is the largest insurance company in Italy and arguably one of the biggest in Europe", done: true },

];
return {
all: function() {
return cardTypes;
}
}

});

$http回调

.factory('Cards', function($http) {
var cardTypes = {};

$http.post("http://url", {
"auth": "cats",
"name": "Adam",
"uuid": "fasfA"
}).
success(function(data, status, headers, config) {
cardTypes = data;
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

return {
all: function() {
return cardTypes;
}
}
});

最佳答案

请记住,.http() 是异步调用。因此,在初始化工厂后直接调用 .all() 将导致返回一个空对象,因为在调用 .all() 时,post 请求可能仍处于挂起状态。

我建议使用服务(工厂也是可能的,但在我看来,服务更适合这里)并返回如下 promise :

this.getAll = function() {
return $http.post("http://url",{"auth":"cats","name":"Adam","uuid": "fasfA" });
}

然后在你的 Controller 中你可以这样做:

Cards.getAll().then(function(c){
$scope.cards = c;
})

关于javascript - 将硬编码数组更改为 $http 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485269/

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