我正在使用 yeoman 的 angular-fullstack 生成器制作一个小型民意调查应用程序。我已经为民意调查设置了一些虚拟数据。当用户点击投票时,他们会被引导到一个查看页面,在那里他们可以根据为问题设置的答案输入他们的选择。
目前,当用户选择一个选项并按下提交时,更改会在客户端更新,但我无法知道为数据库 POST 请求放置什么内容。
这是view
视图:
<div class="container">
<h3>{{poll.title}}</h3>
<form ng-submit="submitForm()">
<div ng-repeat="answer in poll.answers">
<label><input type="radio" name="option" ng-model="radioData.index" value="{{$index}}"/>
{{ answer.value }} - {{ answer.votes }} Votes
</label>
</div>
<button class="btn btn-success" type="submit">Vote!</button>
</form>
</div>
这是它的控制器:
'use strict';
angular.module('angFullstackCssApp')
.controller('ViewCtrl', function ($scope, $routeParams, $http) {
$http.get('/api/polls/' + $routeParams._id).success(function (poll) {
console.log(poll);
$scope.poll = poll;
$scope.radioData = {
index: 0
};
$scope.viewPoll = true;
$scope.alreadyVoted = false;
$scope.submitForm = function () {
$scope.alreadyVoted = true;
console.log($scope.radioData.index);
$scope.poll.answers[$scope.radioData.index].votes += 1;
// Change database entry here
};
});
});
这是我的投票模式:
var PollSchema = new Schema({
creator: String,
title: String,
answers: [{
value: String,
votes: Number
}]
});
所以我的问题是: -
如何编写合适的 POST 请求以将答案的投票增加一?
像我一样在这个 GET 请求中编写我的代码是否正确?感觉必须有一种更合适的方法来做到这一点,特别是因为我在其中调用了另一个请求。