目前,用户一般只能投票或投票一次。我希望用户能够在每个帖子上进行一次或多次投票。
<div class="cont">
<div class="d0"></div>
<div class="d1">
</div>
</div>
控制器:
<div ng-repeat="post in posts | orderBy:'-upvotes'">
<span class="glyphicon glyphicon-thumbs-up"
ng-click="incrementUpvotes(post)" ng-style="post.hadUpvoted ? {color: 'red'} : {}"></span>
{{post.upvotes}}
<span class="glyphicon glyphicon-thumbs-down" ng-click="downvote(post)"
ng-style="post.hadDownvoted ? {color:'red'} : {}"></span>
服务:
var upvoted;
$scope.incrementUpvotes = function(post) {
if(!upvoted) {
posts.upvote(post);
upvoted = true;
post.hadUpvoted = true;
}
};
答案 0 :(得分:3)
不是检查全局require 'csv'
# file variable configuration code
CSV.read(file, col_sep: '|').select { |row| row[2] == 'US' }
变量,而是针对每个帖子进行检查。
您的控制器应该是这样的,
upvoted
我们的想法是为每个帖子在本地设置$scope.incrementUpvotes = function(post) {
if(!post.hadUpvoted) {
posts.upvote(post);
post.hadUpvoted = true;
}
};
变量。
希望它有所帮助。如果有任何疑问,请在评论中提问。
答案 1 :(得分:0)
xyz
的范围限定为整个控制器,因此当您检查upvoted
时,如果用户已投票一次,则该块将无法运行。请检查if(!upvoted)
,因为它的范围是每个帖子。