在angular中防止对like / dislike <div>的多次点击

时间:2016-07-07 06:50:21

标签: javascript html angularjs

HTML代码:

<div ng-controller="reviewsController as revCtrl ">
 <div ng-repeat="review in revCtrl.proreviews>
     <div ng-init="revCtrl.checklikereview(review)"> LIKE
         <div ng-if="review.likestats" ng-href="#" ng-click="revCtrl.removelikereview(review._id)"  class="glyphicon glyphicon-star ">
         </div>
         <div ng-if="!review.likestats" ng-href="#" ng-click="revCtrl.addlikereview(review._id)"  class="glyphicon glyphicon-star-empty ">
         </div> 
         <span ng-bind="review.numoflikes"></span> 
    </div>
    <div ng-init="revCtrl.checkdislikereview(review)"> DISLIKE 
        <div ng-if="review.dislikestats" ng-href="#" ng-click="revCtrl.removedislikereview(review._id)" class="glyphicon glyphicon-star ">
        </div>
        <div ng-if="!review.dislikestats" ng-href="#" ng-click="revCtrl.adddislikereview(review._id)" class="glyphicon glyphicon-star-empty ">
        </div> 
        <span ng-bind="review.numofdislikes"></span> 
     </div>
</div>

发生的问题是用户可以对div进行多次点击,这会使喜欢/不喜欢的人数增加2或更多

如何禁用此功能?

2 个答案:

答案 0 :(得分:1)

你可以使用两个不同的div来验证和其他来调用函数 在一个div中你可以像这样使用

ng-if="review.likestats" ng-href="#" 

并且在div中你可以把另一个调用函数

ng-click="revCtrl.removelikereview(review._id)";

答案 1 :(得分:0)

试试这个。我不确定这是否适用于您的代码。试一试。

<a class="toggle" data-stats="like">Like</a>
<a class="toggle" data-stats="dislike">Like</a>

的javascript

var toggle = getElementsByClassName('toggle'),
    i;

function func(){
    setInterval(function(){
        var stat = this.dataset.stats;

        if(stat == 'like')
            // count + 1
        else
            // dislike count + 1
    }, 3000);
}

for(i = 0; i < toggle.length; i++) toggle[i].addEventListener('click', func);