如何在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; });
小提琴 。