javascript - How can I disable an ng-click after a click inside a ng-if ng-switch statement? -
i have flag button when user clicks on, flags discussion, , afterwards flag button replaced text 'successfully flagged'. having trouble disabling ng-click after clicking flag button. ng-click still exists text 'successfully flagged' , want block clicks on text prevent errors on flagging same discussion.
html:
<div ng-if="canflag(discussion)"> <div ng-switch="isflagging" ng-disabled="button_clicked" ng-click="do_something()" id="flag{{discussion.id}}" title="{{'flag inappropriate'}}" robo-confirm="{'are sure want flag this?'}" class="feedactionbtn"> <i ng-switch-when="false" class="icon-flag"></i> <div ng-switch-when="true" translate translate-comment="success message"> flagged</div> </div> </div>
js:
$scope.isflagging = false; $scope.button_clicked = false; $scope.do_something = function() { $scope.button_clicked = true; this.isflagging = true; }
by adding lazy evaluation or preventing propagation, might able block do_something() method being called, looking have mouse cursor remain pointer , not change 'click link' mouse icon, possible? looks mouse button image css issue fixed
i've tried adding ng-click ng-switch-when statement, such below, after click, isflagging still false , don't success text:
<div ng-switch-when="false" ng-click="do_something()" id="flag{{discussion.id}}" title="{{'flag inappropriate'}}" robo-confirm="{'are sure want flag this?'}" class="feedactionbtn"> <i class="icon-flag"></i> </div>
you can stop event bubbling adding ng-click="$event.stoppropagation()"
on "successfully flagged" div. in case click event not reach parent container:
<div ng-click="$event.stoppropagation()" ng-switch-when="true" translate translate-comment="success message"> flagged</div>
Comments
Post a Comment