2014-05-15 12 views
1

我有一個投票窗口小部件,遊客到一個站點可以在自己喜愛的遊戲投票或上下。但是,遊客也可以投票反對否決!投票窗口小部件有一個最低的零(不包括負數)

例如,如果我game的範圍對象的當前voteCount設置爲0,用戶可以一起去,按向下箭頭,將其更改爲-1。我怎樣才能阻止這種情況發生?

我可以投票發生之前做了檢查手動做到這一點,但有一定角度的過濾器來做到這一點?

此外,什麼是允許用戶一票的,而不是沒完沒了票的最快方法?餅乾會是最快的方式嗎?或HTML5的LocalStorage

CTRL CODE

myApp.controller('VotingCtrl', function($scope){ 
    $scope.games = [ 
     { 
      name: 'Watch Dogs', 
      description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam ut felis dapibus, bibendum dui eu.', 
      imgUrl: 'img/watchdogs.jpg', 
      voteCount: 0 
     }, 
     { 
      name: 'Thief', 
      description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam ut felis dapibus, bibendum dui eu.', 
      imgUrl: 'img/thief.jpg', 
      voteCount: 0    
     }, 
     { 
      name: 'Fifa 2014', 
      description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam ut felis dapibus, bibendum dui eu.', 
      imgUrl: 'img/fifa2014.jpg', 
      voteCount: 0 
     } 
    ] 

    $scope.voteUp = function(game) { 
     game.voteCount += 1; 
    }; 

    $scope.voteDown = function(game) { 
     game.voteCount -= 1; 
    }; 
}); 
+1

你是什麼意思AngularJS過濾器? AngularJS作爲一個框架,爲你調用一個函數(在本例中爲'voteDown') - 這個函數的邏輯是由你來決定的。所以,在函數中加入一個檢查來確保投票不會變成負數! – callmekatootie

回答

5

的一種方法是改變你的voteDown方法不會遞減,如果voteCount = 0

另一種方法(我寧願)是禁用downVote按鈕,如果voteCount已達到0,使用ng-disabled。這將使用戶清楚他/她不能倒退。

編輯:使用ng-disabled的僞代碼。 在您看來,您可以做類似的事情,假設您禁用了跨度。

<span ng-disabled="isDownVoteDisabled(game)"></span> 

在你的控制器,你可以定義

$scope.isDownVoteDisabled = function(game) { 
    return game.voteCount <= 0; 
} 

ABHI。

+1

啊。好。是的,這是另一種選擇 - 放一些代碼來說明他如何使用'ng-disabled' – callmekatootie

+0

是的請!這對我和這個問題的未來民衆會有所幫助。 – Ciwan

相關問題