我之前也问过这个问题。也许有人可以在这里发现错误。
.controller('DishDetailController', ['$scope', function($scope) {
var dish={
name:'Uthapizza',
image: 'images/uthapizza.png',
category: 'mains',
label:'Hot',
price:'4.99',
description:'A unique combination of Indian Uthappam (pancake) and Italian pizza, topped with Cerignola olives, ripe vine cherry tomatoes, Vidalia onion, Guntur chillies and Buffalo Paneer.',
comments: [
{
rating:5,
comment:"Imagine all the eatables, living in conFusion!",
author:"John Lemon",
date:"2012-10-16T17:57:28.556094Z"
},
{
rating:2,
comment:"It's your birthday, we're gonna party!",
author:"25 Cent",
date:"2011-12-02T17:57:28.556094Z"
}
]
};
$scope.dish = dish;
}])
.controller('DishCommentController', ['$scope', function($scope) {
$scope.newcomment = {
rating : "",
comment: "",
author: "",
date: new Date().toISOString()
};
$scope.submitComment = function () {
$scope.newcomment.date = new Date().toISOString();
$scope.newcomment.rating = parseInt($scope.newcomment.rating)
console.log($scope.newcomment.comment);
console.log($scope.newcomment.author);
console.log($scope.newcomment.rating);
console.log($scope.newcomment.date);
$scope.dish.comments.push($scope.newcomment);
}
}]);
在html部分我只有两三个文本框。按钮onclick中的SubmitComment
。 Console.log向我显示我需要的结果。但我无法将其推向阵列。练习是教程的一部分。因此需要在单独的控制器中编写它们,这是由教程
答案 0 :(得分:0)
碟形物体没有在第二个控制器中定义,它可以从错误中得到理解" undefined"。 你必须找到一种方法从第一个控制器传递碟形物体" DishDetailController"到第二个" DishCommentController"。 有几种方法可以做到这一点,一种方法是从第一个控制器将对象存入服务,然后从第二个控制器中的相同服务中检索它。据我所知,在控制器之间共享对象的最佳方式是通过服务。