如何使用复选框锁定按钮?

时间:2019-08-30 08:39:34

标签: angular angular-material

我有一个复选框,最初应该是不活动的。并且还有一个按钮应该是不活动的。如果该复选框处于活动状态,则该按钮也将处于活动状态。反之亦然。

ts:

  disabled: boolean = false;

  changeEvent(event) {
    if (event.target.checked) {
      this.disabled = true;
    }
    else {
      this.disabled = false;
    }
  }

html:

<mat-checkbox color="primary" (change)="changeEvent($event)">
    Disabled
</mat-checkbox>

<button mat-button color="primary" [disabled]="!disabled">Click</button>

5 个答案:

答案 0 :(得分:6)

您可以使用组件变量来引用复选框本身

<mat-checkbox #disabler color="primary">
    Disabled
</mat-checkbox>

<button mat-button color="primary" [disabled]="disabler.checked">
  Click
</button>

答案 1 :(得分:0)

禁用属性时,必须提供文字值或忽略属性。您可以尝试:

<button mat-button color="primary" [disabled]="disabled ? 'disabled' : null">Click</button>

答案 2 :(得分:0)

您的逻辑应该有效(如我在this quick Stackblitz中所做的证明):

component.ts

disabled = false;

change(event) {
  this.disabled = event.target.checked;
}

component.html

<input type="checkbox" (change)="change($event)">Disabled
<button [disabled]="!disabled">Click</button>

您是否缺少某些Angular Material导入或包含元素?

答案 3 :(得分:0)

为什么不使用[[ngModel)]?

<mat-checkbox[(ngModel)]="disabled">Disabled</mat-checkbox>
<button [disabled]="disabled?true:null">Click</button>

//in your .ts
disabled: boolean = true;

答案 4 :(得分:0)

删除条件内的目标。

git push --all