如何在 angularjs 工厂中使用 json 文件返回对象数组
How to return array of object use json file in angularjs factory?
在这里,我为服务调用创建了示例,该示例工作正常 一个接一个地调用示例的链接。
喜欢这个:-
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];
});
在服务中使用拆分值并尝试逐个推送承诺并返回为数组它不起作用我不知道我在哪里犯了错误,任何人都可以在这方面帮助我。.
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;
}
};
});
示例 2 的链接不起作用
你需要
为此使用承诺。 这是您需要使用的服务
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
$q
这就是$q的目的。
app.service("JSONService", ["$http", "$q", function($http, $q){
return {
getJson: function(callback){
_urls = ["data1.json", "data2.json", "data3.json"],
_urlCalls = [],
_data = [];
angular.forEach(_urls, function(url) {
_urlCalls.push($http.get(url));
});
$q.all(_urlCalls).then(
function(results) {
results.forEach(function(e,i){
_data.push(e.data);
});
callback(_data);
},
function(errors) {},
function(updates) {}
);
}
}
}]);
用法
从控制器。
JSONService.getJson(function(response){
console.log(response);
}
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 不显示带有本地json文件数据的谷歌地图脚本
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 加载两个具有相同父密钥名称的json文件
- 使用JSON文件中的变量(字符串)填充文本区域
- 动态显示JSON文件内容
- 将JSON转换为放入Sdcard中的CSV文件
- 正在尝试将JSON文件放入JS数组
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 单击按钮更改加载到表中的JSON文件
- 创建一个包含两个文件 json 的 Angularjs 过滤器
- Multer上传文件+JSON对象
- 使用node.js读取和写入文件(JSON)
- 如何在angularjs中设置变量's值来上传文件json数据
- 向现有文件. Json写入Json,没有“语法错误”
- 如何保存更新json(文件json)与jquery或javascript
- AngularJS:当使用$http请求一个文件(json content)时发生SyntaxError
- 如何简化此代码?将文件json转换为数组json
- 如何从外部文件JSON创建JAVASCRIPT数组