使用AngularJS解析JSON响应时出现问题

时间:2013-07-29 06:22:57

标签: javascript json angularjs angularjs-scope angularjs-ng-repeat

我是使用AngularJS的新手,我在解析json响应时遇到问题。这是我正在使用的HTML代码:

<!DOCTYPE html>
<html ng-app>
<head>
    <script src="@routes.Assets.at("javascripts/angular.min.js")" type="text/javascript"</script>
    <script src="@routes.Assets.at("javascripts/carLibrary.js")" type="text/javascript"></script>
</head>
<body>

<div ng-controller="CarCtrl">
    <ul>
        <li ng-repeat="car in cars">
            {{car.name}}
            <p>{{car.speed}}</p>
        </li>
    </ul>
    <hr>
    <p>{{response}}</p>
</div>
</body>
</html>

这是使用AngularJS的Javascript代码:

function CarCtrl($scope, $http) {

    $scope.getAllCars = function () {
        $scope.url = 'getAllCars';

        $http.get($scope.url).success(function (data, status) {
            $scope.response = data;
            var carsFromServer = JSON.parse(data);
            $scope.cars = carsFromServer.allCars;
        }).error(function (data, status) {
                $scope.response = 'Request failed';
            });
    }

    $scope.getAllCars();
}

HTML显示变量$ scope.response和服务器返回的JSON,但它没有在顶部的列表中显示任何内容。 JSON格式完美,但$ scope.cars变量似乎总是空的。

我做错了什么?

非常感谢,

GA

2 个答案:

答案 0 :(得分:14)

$ http.get将为你解析json。你不需要自己解析它。

   $scope.cars = data.allCars;

答案 1 :(得分:3)

只需解析您的数据

function (response,httpStatus) {    
                 alert('response' + angular.toJson(response));                  
         }

它是angularjs的内置功能。<​​/ p>