AngularJS更改动态$ http.get

时间:2018-07-26 13:45:58

标签: angularjs json http

我最近学习了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在顶部代码块中的位置?对不起,我是英语。这是我第一次写国外论坛。预先感谢

2 个答案:

答案 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);
    });

}