我正在这个 Angular 项目中工作,用户提交评论表单,新评论将添加到已发布的评论中。这是我的代码。
.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;
})
};
但是,当我尝试添加评论时,出现以下错误。
TypeError: Cannot read property 'push' of undefined
我定义了一个空的 $scope.comments = {};那么为什么我会收到此错误?我该如何解决它?谢谢
您声明的注释是一个对象。只需将您的声明更改为数组即可,
From:
$scope.comments = {};
To:
$scope.comments = [];
EDIT:如果您需要推送新对象,您需要将注释作为对象数组,如下所示并推送新对象
$scope.comments = {
1: {name:'',review:'',comment:'',uptime:'',gravatar:''}
}
$scope.comments.push({name:'rukshi', review:'test comment',comment:'yet another comment',uptime:'',gravatar:''});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)