我正在尝试模拟评论系统。如何将传递值提交给控制器?
在我的控制器里,我有
$scope.reviews = function() {
$scope.rating = 0;
$scope.max = 5;
};
$scope.myTextArea = '';
$scope.saveReview = function(rating, myTextArea) {
console.log(rating);
console.log(myTextArea);
};
在我看来,我有:
<form name="reviewForm" class="form-horizontal" ng-submit="saveReview(rating, myTextArea)" novalidate>
<div>
<rating ng-model="rating" max="max" aria-labelledby="'product.title'"></rating>
</div>
<div>This is the rating: {{rating}}</div>
<div class="animate-switch" ng-switch-when=true>
<textarea ng-model="myTextArea" class="form-control" placeholder="Write a short review of the product." title="Review"></textarea>
</div>
<button type="submit" class="btn btn-primary pull-right">Submit Review</button>
</form>
当我提交表单时,将调用saveReview函数并在控制台中打印输出为0和''。因此,没有值被保存/传递。 Ng模型评级显示5颗星,如果您点击4颗星,{{rating}}将显示4颗。
有什么想法吗?
答案 0 :(得分:0)
不要将任何内容传递到saveReview()
上的ng-submit
函数中。而是让saveReview()
使用范围中的变量。还将变量封装在对象中。例如:ng-model="review.rating"
和ng-model="review.text"
。假设有很多,你需要一个成为一个对象;)
$scope.saveReview = function() {
console.log($scope.review.rating);
console.log($scope.review.text);
};