作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
使用 Angular Material,我想在一段时间内禁用多个
示例:https://stackblitz.com/edit/angular-jqzx99
组件:
export class AppComponent {
@ViewChildren(MatOption) matSelectOptions: QueryList<MatOption>;
public isPaused = false;
public optionData = ['Foo', 'Bar', 'Baz'];
/**
* Disable MatSelect checkboxes for 2 seconds
*/
public disableCheckboxes(): void {
this.isPaused = true;
this.matSelectOptions.forEach(option => option.disabled = true);
setTimeout(() => {
this.isPaused = false;
this.matSelectOptions.forEach(option => option.disabled = false);
}, 2000);
}
}
模板:
<mat-form-field>
<mat-select multiple
[disabled]="isPaused"
(selectionChange)="disableCheckboxes()">
<mat-option *ngFor="let option of optionData">
{{option}}
</mat-option>
</mat-select>
<mat-placeholder>Example</mat-placeholder>
</mat-form-field>
<p id="loadingStatus">{{isPaused ? 'Pausing…' : ''}}</p>
最佳答案
似乎以编程方式禁用 MatOptions 对象并不是一个好主意。
所以仅使用 isPaused 进行选择和选项就可以了
组件:
export class AppComponent {
@ViewChildren(MatOption) matSelectOptions: QueryList<MatOption>;
public isPaused = false;
public optionData = ['Foo', 'Bar', 'Baz'];
/**
* Disable MatSelect checkboxes for 2 seconds
*/
public disableCheckboxes(): void {
this.isPaused = true;
setTimeout(() => {
this.isPaused = false;
}, 2000);
}
}
模板:
<h3>Disabled MatSelect Checkbox Problem:</h3>
<hr>
<mat-form-field>
<mat-select multiple
[disabled]="isPaused"
(selectionChange)="disableCheckboxes()">
<mat-option *ngFor="let option of optionData" [disabled]="isPaused">
{{option}}
</mat-option>
</mat-select>
<mat-placeholder>Example</mat-placeholder>
</mat-form-field>
<p id="loadingStatus">{{isPaused ? 'Pausing…' : ''}}</p>
关于angular - 在多个 MatSelect 中,重新启用的复选框显示为禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544487/
我是一名优秀的程序员,十分优秀!