【发布时间】:2016-04-21 16:16:49
【问题描述】:
开始对我的英语感到抱歉。
我对这个问题进行了一些搜索,但对我没有任何帮助。
我的问题很简单:
我有一个投票系统,用户可以在其中投票(如 Stackoverflow)。但问题是用户可以多次投票(而且不是很好..)。
我尝试制作一个禁用 ng 的按钮,但如果我这样做,用户只能为所有帖子投票一次(我的意思是,如果他们投票支持“帖子 A”,他们就不能投票支持“帖子 B” )。
这是我的控制器功能:
$scope.incrementUpvotes = function(post) {
posts.upvote(post);
};
这是我的工厂函数:
o.upvote = function(post){
return $http.put('/posts/' + post._id + '/upvote', null, {
headers: {Authorization: 'Bearer '+auth.getToken()}
}).success(function(data){
post.upvotes += 1;
});
};
这里是html:
<span class="glyphicon glyphicon-thumbs-up" ng-click="incrementUpvotes(post)"></span>
如果有人可以帮助我,那就太好了!提前致谢!
【问题讨论】:
-
我确定您已经知道这一点,但只是提醒一下:无论您做什么,都无法阻止用户仅使用 Angular 多次投票。如果你想完全阻止它,你必须向服务器添加额外的检查。
-
您必须在后端执行此操作,可能是一个映射表映射用户的问题问。当用户在问题详细信息中对帖子进行投票时,您会将用户和问题 ID 保存在映射表中,并且您将拥有一个 $scope 变量,该变量将其设置为真或假,并且在加载问题时再次使用映射表记录是否存在于映射表中并设置变量true或false
-
我还没有角力,我认为通过这种方式是可能的,而且我浪费了很多时间..我应该以前问过。谢谢你的帮助,我明天试试。
标签: javascript angularjs