在角度2中禁用具有两个条件的按钮

Mar*_*Jen 32 html typescript angular

角度2有可能吗?

<button type="submit" [disabled]="!validate && !SAForm.valid">Add</button>
Run Code Online (Sandbox Code Playgroud)

我希望如果两个条件都为真,他们将启用按钮.

我已经尝试过上面的代码,但它没有按预期工作.

Deb*_*ahK 78

听起来你需要一个OR代替:

<button type="submit" [disabled]="!validate || !SAForm.valid">Add</button>
Run Code Online (Sandbox Code Playgroud)

如果不验证或不是SAForm.valid,这将禁用该按钮.


bvd*_*vdb 17

除了对方的回答,我想指出的是,这种推理也被称为德·摩根定律。它实际上更多地是关于数学而不是编程,但它是如此基础,以至于每个程序员都应该了解它。

你的问题是这样开始的:

enabled  = A and B
disabled = not ( A and B )
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,但你更进一步,试图取下牙套。这是一个有点棘手,因为你必须更换and/&&or/ ||

not ( A and B ) = not(A) OR not(B)
Run Code Online (Sandbox Code Playgroud)

或者用更数学的表示法:

在此处输入图片说明

每当我简化条件或处理概率时,我总是牢记这条定律。


Vis*_*ale 5

在component.ts中声明一个变量并将其初始化为某个值

 buttonDisabled: boolean;

  ngOnInit() {
    this.buttonDisabled = false;
  }
Run Code Online (Sandbox Code Playgroud)

现在,在.html或模板中,您可以放置​​以下代码:

<button disabled="{{buttonDisabled}}"> Click Me </button>
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过更改buttonDisabled变量的值来启用/禁用按钮。

  • 我会使用 ngOnInit 而不是构造函数。 (2认同)