我最近学习了AngularJS。我开始了一个小项目。我能够从json文件中提取数据。我当前的任务是能够从多个json文件中提取数据。我该怎么办?
我以这种方式制作了第一个json文件:
$http.get("personel.json")
.then(function(gelen) {
$scope.personeller = gelen.data;
});
我还有9个需要提取的json文件,但我想查看我正在调用的文件的数据
$http.get("1.json")
.then(function(veri1) {
$scope.x1 = veri1.data;
});
其他文件名为“ 1.json,2.json,3.json ....... 9.json”
我该如何更改1.json在顶部代码块中的位置?对不起,我是英语。这是我第一次写国外论坛。预先感谢
答案 0 :(得分:1)
$scope.getdetail = function(detail) {
$scope.result = detail;
$http.get($scope.result.id + ".json")
.then(function(veri1) {
$scope.x1 = veri1.data;
});
}
我以这种方式解决了我的问题,谢谢。
答案 1 :(得分:-2)
您可以将$ http调用包装在一个函数中,并传入要检索的文件名,如下所示:
编辑,我在这里修改了代码,增加了对处理异步请求可能引起的问题的承诺
$scope.getFile = async function(fileName){
return new Promise((res, err) => {
$http.get(fileName).then(function(result){
res(result.data);
})
})
}
$scope.file1 = $scope.getFile("1.json");
$scope.file2 = $scope.getFile("2.json");
$scope.file3 = $scope.getFile("3.json");
$scope.file4 = $scope.getFile("4.json");
$scope.file5 = $scope.getFile("5.json");
$scope.file6 = $scope.getFile("6.json");
$scope.file7 = $scope.getFile("7.json");
$scope.file8 = $scope.getFile("8.json");
$scope.file9 = $scope.getFile("9.json");
如果文件是连续的和数字的,则还可以使用此循环使用for循环将文件中的所有数据拉入单个数组。
$scope.returnedFiles = [];
for(i = 0; i < 9; i++){
$scope.getFile(i + ".json").then(fileData => {
$scope.returnedFiles.push(fileData);
});
}