繁体   English   中英

如何将最新值更新为变量

[英]how to update latest value to a variable

我有一个ng-click函数,可以用作“向上投票按钮”,它将投票数增加1,每个用户只能投票一次,我用来检测“一个用户只能投票一次”的方法是比较他们的user_id如果他们的user_id在表决的ID中,则无法投票,但是问​​题是我无法将从数据库中获取的更新的表决的ID设置为变量。换句话说,用户可以多次投票,除非用户刷新页面,并且最新的voted_id更新为变量。

我不确定我的做法是否正确,如果你们有更好的建议,请告诉我,您的建议将受到赞赏。 这就是我到目前为止

$scope.up = function(){
          if(s_session != null){ // check if user logged in or not 
            data.getUserData().success(function(userData){ // get user data
              $scope.a = {};
              $scope.b = {};
              $scope.a = data1.votes.voted_id; // set voted_id(it is an array)
              $scope.b = userData._id; // set user_id
            if($scope.a.indexOf($scope.b) == -1){ // if it is not in the list
                                                  // perform upvote action 
          $scope.user ={};
          $scope.user = userData;
          $scope.user.permalink = $routeParams.permalink;
          $http.post('/contentHandler/Post/vote/up',$scope.user).
          success(function(updatedData) {
          $scope.a = updatedData.votes.voted_id; // after upvoted
                                                // re-set the latest voted_id to
                                               // $scope.a and prevent the user
                                              // to vote again
            }).error(function(err){

            });
            }else{
              alert("you can't vote twice");
            }
            });
            }else{
              $location.path('/login');
            }
          }

您实际上在哪里增加票数? 您可以在客户端(基本上在角度范围内)设置一个临时的userHasNotVoted布尔变量,以防止它们在重新加载页面之前进行多次投票。

将变量添加到范围,如下所示:

$scope.userHasNotVoted = true;

$scope.up = function(){
    if(userHasNotVoted){
        $scope.userHasNotVoted = false;
        //add vote and record it in the db
        // do whatever else
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM