如何为“ng-disabled”添加多个条件?

问题描述 投票:0回答:7
angularjs angularjs-directive
7个回答
75
投票
您应该能够

&&

 条件:

ng-disabled="condition1 && condition2"
    

22
投票
旺尼是对的。

&&

 运算符在 HTML 中不起作用。对于 Angular,您必须在多种情况下使用双管道 (
||
)。


15
投票
原始问题的措辞中可能存在一些问题:

在启用按钮之前我需要检查两个条件是否都为真

首先要记住,ng-disabled 指令正在评估按钮应该“禁用”的条件,但最初的问题是指按钮应该“启用”的条件。 在 ng-disabled 表达式不“真实”的任何情况下都会启用它。

所以,首先考虑的是如何重新表述问题的逻辑,使其更接近ng-disabled的逻辑要求。 检查两个条件是否为真以启用按钮的逻辑相反是,如果“任一”条件为“假”,则应禁用该按钮。 因此,在原始问题的情况下,ng-disabled 的伪表达式是“如果条件1为假

条件2为假,则禁用按钮”。 翻译成 Angular 所需的类似 Javascript 的代码片段 (

https://docs.angularjs.org/guide/expression),我们得到: !条件1 || !条件2

Zoomlar 说得对!

确保以正确的优先级包装条件

ng-disabled="((!product.img) || (!product.name))"

实际上 ng-disabled 指令对我来说适用于“ || ”逻辑运算符。 “&&”仅评估一个条件。

11
投票
示例:

https://jsbin.com/venifacimu/1/edit?html,js,输出


8
投票

您可能需要单击“使用 JS 运行” - 希望这会有所帮助。

你可以尝试这样的事情。

<button class="button" ng-disabled="(!data.var1 && !data.var2) ? false : true">
</button>

对我来说效果很好。


0
投票
两个变量必须为 false 才能禁用按钮:

<button class="button" ng-disabled="(!data.var1 && !data.var2) ? false : true"> </button>
    

这个方法对我有用

0
投票
ng-disabled = =“(用户.角色.ID!= 1)&&(用户.角色.ID!= 2)”


© www.soinside.com 2019 - 2024. All rights reserved.