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
Tout d'abord, pourquoi
push
est en cours d'utilisation sur un objet ?
OriginalL'auteur rksh | 2015-04-09
Vous devez vous connecter pour publier un commentaire.
Les commentaires que vous avez déclaré est un Objet. Il suffit de changer votre déclaration d'un tableau ,
À partir de:
:
EDIT:
Si vous avez besoin de Pousser nouvel Objet, Vous devez faire vos Commentaires en tant que Tableau d'Objet comme celui-ci et poussez le nouvel Objet
Oui, il y a un autre problème dans la partie du code qui n'ont pas posté de laquelle les ensembles de $champ d'application.commentaires sur undefined, ce correctif et avec votre correction tout fonctionne bien maintenant. Merci
OriginalL'auteur Sajeetharan
Vous pouvez essayer cette
OriginalL'auteur Masum Billah