TypeError: Cannot read property 'push' undefined, JavaScript

Je travaille dans ce Angulaire du projet où l'utilisateur soumet un formulaire de commentaire, et le nouveau commentaire est ajouté aux commentaires déjà postés. Voici mon code.

.controller('productCtrl', function($scope, $http, $routeParams, Page){
$scope.product = {};
$scope.review = {};
$scope.comments = {};

routeparm = $routeParams.param;

$scope.review = function(){
    var review_box = $scope.review_form.review_box;

    $http.post('./comment.php', {
        comment : review_box,
        code: routeparm
    })

    .success(function(data){
            $scope.comments.push(data.comments);
            $scope.review.review_box = '';
    })

    .error(function(data){
        $scope.has_error = true;
        $scope.error_message = data;
    })

};

Cependant lorsque j'essaie d'ajouter un commentaire, j'obtiens l'erreur suivante.

TypeError: Cannot read property 'push' of undefined

J'ai défini un vide $champ d'application.commentaires = {}; alors, pourquoi suis-je obtenir cette erreur? Et comment puis-je résoudre ce problème? Grâce

vous ne pouvez pas utiliser le pousser pour objet json. Mais cela fonctionnera $champ d'application.commentaires = [ ]; si vous initialisez ce que array.
Tout d'abord, pourquoi push est en cours d'utilisation sur un objet ?

OriginalL'auteur rksh | 2015-04-09