AngularJS - ng-disabled 没有禁用我的元素

AngularJS - ng-disabled is not disabling my element

如果条件存在,我试图隐藏一个选项,但该选项仍然存在。

这是我的代码:

<li role="presentation"><a role="menuitem" tabindex="-1" ng-disabled="disAplicar" ng-if="!hideBtnAplicar" ng-click="existenciaCero()">Aplicar Existencia Cero</a></li>

我的 JS 是:

$scope.disAplicar = $scope.datos.tipo == 'informativo' ? true : false;

你能帮我找出错误是什么吗?

提前致谢。

如果您想模拟禁用 a 元素,您需要通过两种方式进行:样式和行为。对于样式,使用 disabled CSS class 之类的东西以编程方式应用 ng-class="{ 'disabled': disAplicar }"。这将使它看起来被禁用,但要使其也被禁用,请确保您的 ng-click 函数考虑相同的条件。

$scope.existenciaCero = function() {
    if ($scope.disAplicar) {
        return;
    }
    // the rest of your code
}

如果您在 a 上使用 href 而不是点击事件,除了我提到的禁用样式之外,您还需要这样的东西:

<a ng-href="{{ disAplicar ? '/someUrl' : '#' }}">My link</a>

在这种情况下,您应该真正使用 button 而不是 a 标签,您可以在此处使用 [=17] 将 button 设置为 a 标签的样式=].

<li role="presentation"><button role="menuitem" tabindex="-1" ng-disabled="disAplicar" ng-if="!hideBtnAplicar" ng-click="existenciaCero()">Aplicar Existencia Cero</button></li>

这比我想象的要容易。我只是使用 ng-hide 而不是禁用,就是这样!谢谢大家。