5

I am new using AngularJS and I am having an issue parsing a json response. This is the HTML code I am using:

<!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>

And this is the Javascript code using AngularJS:

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();
}

The HTML is showing the variable $scope.response with the JSON returned by the server, but it is not showing anything in the list at the top. The JSON is perfectly formatted, however $scope.cars variable seems to be always empty.

What am I doing wrong?

Many thanks,

GA

1
  • Could you show an example of the JSON that you are getting? Commented Jul 29, 2013 at 6:36

2 Answers 2

14

$http.get will parse the json for you. You do not need to parse it yourself.

   $scope.cars = data.allCars;
Sign up to request clarification or add additional context in comments.

Comments

3

Just parse your data like that

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

It is built-in feature of angularjs.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.