ユーザーがクリックしたときにディスカッションにフラグを立てるフラグ ボタンがあり、その後、フラグ ボタンは「フラグが付けられました」というテキストに置き換えられます。現在、フラグ ボタンをクリックした後に ng-click を無効にできません。'successfully flagged' というテキストの ng-click がまだ存在します。同じディスカッションにフラグを立てる際のエラーを防ぐために、このテキストのクリックをブロックしたいと思います。
html:
<div ng-if="canFlag(discussion)">
<div ng-switch="isFlagging"
ng-disabled="button_clicked"
ng-click="do_something()"
id="flag{{discussion.id}}"
title="{{'flag as inappropriate'}}"
robo-confirm="{'Are you sure you want to flag this?'}"
class="feedActionBtn">
<i ng-switch-when="false"
class="icon-flag"></i>
<div ng-switch-when="true"
translate translate-comment="success message">
Successfully flagged</div>
</div>
</div>
js:
$scope.isFlagging = false;
$scope.button_clicked = false;
$scope.do_something = function() {
$scope.button_clicked = true;
this.isFlagging = true;
}
遅延評価を追加するか、伝播を防止することで、do_something() メソッドが呼び出されるのをブロックできるかもしれませんが、マウス カーソルをポインタのままにして、「リンクをクリック」マウス アイコンに変更しないようにしたいと考えています。これは可能でしょうか?マウス ボタンの画像は私が修正した css の問題だったようです
また、以下のように ng-switch-when ステートメントに ng-click を追加しようとしましたが、クリックした後も isFlagging は false のままで、成功のテキストが表示されません。
<div ng-switch-when="false"
ng-click="do_something()"
id="flag{{discussion.id}}"
title="{{'flag as inappropriate'}}"
robo-confirm="{'Are you sure you want to flag this?'}"
class="feedActionBtn">
<i class="icon-flag"></i>
</div>