我正在做一个有两个下拉菜单的项目。
在那里,我可以根据在另一个下拉菜单中选择的选项,动态禁用/启用一个下拉菜单的选项:
ts代码:
disable(obj) {
let index = this.select2.indexOf(obj);
if (index === -1) {
return false;
} else {
return true;
}
}
disable1(obj) {
let index = this.select1.indexOf(obj);
if (index === -1) {
return false;
} else {
return true;
}
}
HTML代码:
<h1>Select-1</h1>
<mat-form-field appearance="outline">
<mat-select [(value)]="select1" multiple>
<mat-optgroup *ngFor="let item of arr1" [label]="item.type">
<mat-option
*ngFor="let data of item.name"
[value]="data"
[disabled]="disable(data)"
>
{{ data }}
</mat-option>
</mat-optgroup>
</mat-select>
</mat-form-field>
<h1>Select-2</h1>
<mat-form-field appearance="outline">
<mat-select [(value)]="select2" multiple>
<mat-optgroup *ngFor="let item of arr2" [label]="item.type">
<mat-option
*ngFor="let data of item.name"
[value]="data"
[disabled]="disable1(data)"
>
{{ data }}
</mat-option>
</mat-optgroup>
</mat-select>
</mat-form-field>
但我也想禁用/启用两个下拉菜单的所有其他选项时,"所有口袋妖怪"被选中。像,如果"所有口袋妖怪"被选中在第一个下拉菜单,然后所有其他选项和第二个下拉菜单的选项也被禁用。同样,如果我取消选择"所有口袋妖怪"的选项将被启用。
我该怎么做?
先谢谢你的帮助。
Stackblitz demo
1条答案
按热度按时间ivqmmu1c1#
对于
disable
函数,请尝试以下操作:如果您希望它双向工作,然后尝试: