Angular 从组件启用后,复选框不再可选中-角度2/4/5
让我先解释一下我想要实现的场景 我有一个选择框,假设它有i1、i2、i3、i4、i5这样的值。 除了选择框,我还有一个复选框 该复选框最初将被禁用。 现在,当我选择i2或i3时,我想启用复选框 如果它不是i2和i3,则需要禁用并取消选中复选框 以下是我的DOM代码:Angular 从组件启用后,复选框不再可选中-角度2/4/5,angular,typescript,checkbox,Angular,Typescript,Checkbox,让我先解释一下我想要实现的场景 我有一个选择框,假设它有i1、i2、i3、i4、i5这样的值。 除了选择框,我还有一个复选框 该复选框最初将被禁用。 现在,当我选择i2或i3时,我想启用复选框 如果它不是i2和i3,则需要禁用并取消选中复选框 以下是我的DOM代码: <mat-select placeholder="item" [(ngModel)]="selectedItem" [formControl]="selectedItem[ix]" required (
<mat-select placeholder="item" [(ngModel)]="selectedItem" [formControl]="selectedItem[ix]" required
(ngModelChange)="allowCheck(ix, checkBox)">
<mat-option *ngFor="let item of allItems()" [value]="item">
{{ item }}
</mat-option>
</mat-select>
<mat-checkbox [(ngModel)]="checkMe" #checkBox>
</mat-checkbox>
此解决方案启用了复选框,但我无法选中它。有人能告诉我这里出了什么问题吗?您必须将字符串作为字符串传递 这是类型为“any”的空变量数组。通过“==某个字符串”进行比较,它们永远不会返回true
allItems() {
return [i1, i2, i3, i4, i5];
}
这样试试看
allItems() {
return ['i1', 'i2', 'i3', 'i4', 'i5'];
}
或者
const i1='i1';
const i2='i2';
const i3='i3';
const i4='i4';
const i5='i5';
allItems() {
return [i1, i2, i3, i4, i5];
}
您必须将字符串作为字符串传递 这是类型为“any”的空变量数组。通过“==某个字符串”进行比较,它们永远不会返回true
allItems() {
return [i1, i2, i3, i4, i5];
}
这样试试看
allItems() {
return ['i1', 'i2', 'i3', 'i4', 'i5'];
}
或者
const i1='i1';
const i2='i2';
const i3='i3';
const i4='i4';
const i5='i5';
allItems() {
return [i1, i2, i3, i4, i5];
}
因此,答案就在这里,只是为了让其他人不用花一天的时间 最初(onload)使复选框禁用
ngOnInit() {
this.disabledCheck = true;
}
allowCheck(ix: number, checkBox) {
checkBox.disabled = true;
if(this.selectedItem === 'i2' || this.selectedItem === 'i3'){
this.disabledCheck = false;
}
else {
this.disabledCheck = true;
this.checkMe = false;
}
}
HTML:
{{item}}
因此,这里是答案,只是为了让其他人不用花一天的时间
最初(onload)使复选框禁用
ngOnInit() {
this.disabledCheck = true;
}
allowCheck(ix: number, checkBox) {
checkBox.disabled = true;
if(this.selectedItem === 'i2' || this.selectedItem === 'i3'){
this.disabledCheck = false;
}
else {
this.disabledCheck = true;
this.checkMe = false;
}
}
HTML:
{{item}}
您需要从视图模板中提供一些代码,以便人们能够提供帮助。嘿,我已经用一些代码更新了我的问题。请看一看!您需要从视图模板中提供一些代码,以便人们能够提供帮助。嘿,我已经用一些代码更新了我的问题。请看一看!