我正在使用angularfire,并且在我的投票应用程序的最后阶段,有人投票,点击提交并更新问题中的计数(或标记就是我所说的)。这是我的数据模型:
"-JOiDEYd8ANSv9jbL5qJ" : {
"question" : "Coffee or Tea?",
"options" : [ {
"mark" : 0,
"option" : "Coffee"
}, {
"mark" : 0,
"option" : "Tea"
} ]
},
"-JOiD7pd0fpY_lvYr74s" : {
"question" : "Bagels or Waffles?",
"options" : [ {
"mark" : 0,
"option" : "Bagels"
}, {
"mark" : 0,
"option" : "Waffles"
} ]
},
这是我的html,用于用户在进行投票时看到的内容:
<form role="form" ng-submit="pollSubmit()">
<div class = "form-group" ng-repeat="option in selected.options">
<input type="radio" name = "answer" ng-value="1" ng-model="option.mark" > {{option.option}}
</div>
<div class="form-group">
<input class="btn btn-primary btn-xs pull-left" type="submit" value="Submit Poll">
</div>
</form>
当我在html中测试{{option.mark}}时,每次选择单选按钮时标记的值都会递增,而当我单击其他选项时,标记的值不会重置为0。当我实际提交时,我希望后端的标记上升一个。所以我如何制作这样我的单选按钮只选择一个选项,并且当有人在提交单选按钮之前点击单选按钮时,不会将标记加1。
这是我的控制器
'use strict';
angular.module('controllers', [])
.controller('homeCtrl', ['$scope', '$firebase', function ($scope, $firebase){
$scope.total = null;
var ref = new Firebase('https://resplendent-fire-5367.firebaseio.com/');
$scope.polls = $firebase(ref);
$scope.title = 'Active Polls';
$scope.select = function(poll){
$scope.selected = poll;
};
$scope.pollSubmit = function (){
if(confirm('Submit response?')){
$scope.polls.$update({
})
}else{
return;
}
};
}]);