First you'd better add ngDblclick, when it detects the double click just return false
:
<ANY ng-click="buttonClicked()" ng-dblclick="return false">
If you want to wait for the Ajax call to be finished, then you can disable the button by setting the ng-disabled
<ANY ng-click="buttonClicked()" ng-dblclick="return false;" ng-disabled="flag">
And in your controller, you can do
$scope.flag = false;
$scope.buttonClicked = function() {
$scope.flag = true;
Service.doService.then(function(){
//this is the callback for success
$scope.flag = false;
}).error(function(){
//this is the callback for the error
$scope.flag = false;
})
}
You need to handle both case when the ajax call is successfull or failed, since if it is failed, you don't want it show as diabled to confuse user.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…