javascript - 在 ng-if ng-switch 语句中单击后如何禁用 ng-click?

标签 javascript angularjs angularjs-ng-click angular-ng-if angularjs-ng-switch

我有一个标记按钮,当用户点击它时,标记讨论,然后标记按钮被替换为文本“成功标记”。目前,我在单击标记按钮后无法禁用 ng-click 时遇到了问题。 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-click 添加到 ng-switch-when 语句中,如下所示,但是点击后,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>

最佳答案

您可以通过在“成功标记”div 上添加 ng-click="$event.stopPropagation()" 来停止事件冒泡。在这种情况下,点击事件不会到达父容器:

<div ng-click="$event.stopPropagation()"
     ng-switch-when="true" 
     translate translate-comment="success message">
    Successfully flagged</div>

关于javascript - 在 ng-if ng-switch 语句中单击后如何禁用 ng-click?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574180/

相关文章:

html - 使用 ngfor 将点击事件添加到迭代列表

javascript - Bootstrap 轮播中的 NVD3 图表

javascript - Angular : How to filter in views with JSON values

javascript - 存储在动态对象中的 JSX 映射数组 (Next.js)

javascript - 如何动态地将数据插入 ionic 滑动框Angularjs Ionic

javascript - AngularJS 中归零 $timeout 的功能是什么?

javascript - Angularjs 在移动设备上出现 ng-click 问题

angularjs-ng-click - ng-class 不计算表达式

javascript - 某些链接上的 FancyBox 导航

javascript - 当我在浏览器中单击另存为 HTML 时,如何下载部分内容而不是网页的所有内容