如何在angularjs中创建上/下投票function

嘿伙计们我可以知道如何在angularjs中创建上/下投票function? 我想使它类似于stackoverflow或reddit。 我找到了一个Jquery插件https://github.com/janosgyerik/jquery-upvote ,它做了我想要的,但它在Jquery中。

我已经尝试了几种方法来做到这一点,但我仍然无法让它运作良好。 这是我的方法。

HTML

    

调节器

 $scope.isUpVoted = false; $scope.$watch("isUpVoted",function(newVal, oldVal){ if(newVal != oldVal){ if(newVal){ // first click // upvote }else{ // second click // remove upvote } } }); $scope.isDownVoted = false; $scope.$watch("isDownVoted",function(newVal, oldVal){ if(newVal != oldVal){ if(newVal){ // first click // downvote }else{ // second click // remove downvote } } }); 

对于一个按钮完全正常工作,但是我仍然无法弄清楚如何使这两个按钮一起工作,例如当用户点击upvote downvote将取消或反之亦然并再次点击upvote取消投票。

只需使用单个范围变量就像切换按钮一样。

示例演示: http //plnkr.co/edit/C4w9hDK3xW1R0ua3WPgU?p =preview

HTML:

   

Vote: {{vote}}

控制器逻辑:

 app.controller('MainCtrl', function($scope) { $scope.changeVote = function(vote, flag) { $scope.vote = vote == flag ? 'None' : flag; alert($scope.vote); }; }); 

制作这样的东西应该很简单。
这是一个简单的例子:

JS:

 var app = angular.module('voteApp', []); app.controller('MainCtrl', function ($scope) { $scope.upVote = function () { $scope.vote++; } $scope.downVote = function () { $scope.vote--; } $scope.vote = 0; }); 

小提琴 。