无法操纵通过多个$ http.get和$ q获得的JSON

时间:2016-02-25 12:35:00

标签: angularjs json

我正在尝试将两个jsons合并为一个,但无法使其工作。我设法从两个get中检索我需要的数据,但是我操纵jsons时遇到了麻烦。

我计划使用两个for循环,但它不起作用:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000000
"ProxyServer"="http://ProxyServername:80"
"ProxyOverride"="<local>"

使用控制台,我可以看到数据,但$ scope.coursesJson.length未定义,我不明白为什么。

也许我不理解$ q?

编辑:

以下是您可以在我获得的课程Json文件中找到的元素示例:

$scope.coursesJson = $http.get('https://api.myjson.com/bins/18zi3');
    $scope.reviewsJson = $http.get('https://api.myjson.com/bins/52toz');

    $q.all([$scope.coursesJson, $scope.reviewsJson]).then(function (values){
        $scope.coursesJson = values[0];
        $scope.reviewsJson = values[1];

            for(i = 0;i<$scope.coursesJson.length;i++){
                for(j = 0;j<$scope.reviewsJson.length;j++){
                    if($scope.coursesJson[i].name = $scope.reviewsJson[j].name){
                        $scope.coursesJson[i].reviews.push($scope.reviewsJson[j]);
                    }
                }
            }

            console.log($scope.coursesJson);
        });

你可以在我获得的reviewsJson文件中找到的元素示例:(

[{"code":"123 ","name":"Acteurs","courseContentGrade":null,"courseTeachingGrade":null,"courseAverage":null,"reviews":null},
    {"code":"1234","name":"Advanced Excel","courseContentGrade":null,"courseTeachingGrade":null,"courseAverage":null,"reviews":null}]

我想将在reviewsJson中找到的元素添加到coursesJson元素的reviews字段中。这可能是问题吗?我认为使用push()方法会创建数组,但也许我需要更改所有“评论”:null到“review”:[]在coursesJson中?

2 个答案:

答案 0 :(得分:0)

我去了网址https://api.myjson.com/bins/ID1,它不是一个数组,而是一个对象。而不是$ scope.coursesJson.length我认为你应该做$ scope.coursesJson.tracks.length

答案 1 :(得分:0)

我很容易解决了我的问题,我的问题实际上非常愚蠢。

我试图实现的目标并不在前面而是在后端。