gpt4 book ai didi

javascript - 如何在 angularjs 工厂中使用 json 文件返回对象数组?

转载 作者:行者123 更新时间:2023-12-03 07:42:55 25 4
gpt4 key购买 nike

在这里,我创建了服务调用示例,工作正常,一一调用 Link for sample .

像这样:-

     JSONService.getJSON('file.json').then(function(data){
$scope.languages = data;
});

JSONService.getJSON('file1.json').then(function(data){
$scope.languages1 = data;
});

我不想单独发送。为什么因为如果它只有两个三个调用就意味着没问题。但是我需要打超过 100 个电话。到时候我就没法一一做了。所以尝试这样

      JSONService.getJSON('file.json,file1.json').then(function(data){
$scope.languages = data[0];
$scope.languages1 = data[1];
});

在服务中使用拆分值并尝试一一插入 promise 并作为数组返回它不起作用我不知道我在哪里犯了错误任何人都可以帮助我解决这个问题..

app.service('JSONService', function($http){  
var data = [];
return{
getJSON: function(url){
var parameter=url.split(',');
for(var i=0; i< parameter.length; i++){
$http.get(parameter[i])
.then(function(response){
data.push(response);
});
}
return data;
}
};
});

Link for Sample 2 not working

最佳答案

你需要为此使用 promise 。这是您需要使用的服务

app.service('JSONService', function($http, $q){  
var data = [];
return{
getJSON: function(url){
var urls = url.split(','),
promises = [];
for(var i=0; i< urls.length; i++){
var inPromise = $http.get(urls[i])
.then(function(response){
data.push(response.data);
});
promises.push(inPromise);
}
//return the promise from the $q.all, that makes sure, that all pushed promises are ready and return the chapters.
return $q.all(promises).then(function () {
return data;
});

}
};
});

还更新了您的 plnkr http://plnkr.co/edit/smMv9jPyMRNYX2AzAuRC?p=preview 。这会将所有结果连接到一个数组对象languages

关于javascript - 如何在 angularjs 工厂中使用 json 文件返回对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35331335/

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