我有一个要显示的项目列表,每个项目旁边都有一个复选框。我有一个条件语句来检查是否应禁用或启用每个项目的复选框。由于某些不清楚的原因,我的列表中的每个复选框都被禁用,我不确定这是否是我设置 [attr.disabled] 的方式或我的条件语句中的错误。
这是我的html:
<input class="form-control" [attr.disabled]="disabled == true ? true : null"
type="checkbox"[checked]="item.status" (click)="itemChecked($event, item)" />
Run Code Online (Sandbox Code Playgroud)
在我的组件中:
private disabled: boolean;
for( let item of items){
if (item.id == Status.required) {
item.status = true;
this.disabled= true;
} else if (item.id != Status.required && item.list.length > 0) {
item.status = item.id == Status.checked
this.disabled= false;
} else {
item.status = item.id == Status.unchecked;
this.disabled= false;
}
}
Run Code Online (Sandbox Code Playgroud)
目前在我的列表中,无论我的项目的状态如何,所有复选框都被禁用,并且不确定原因。
感谢@NanditaAroraSharma,我能够意识到每次列表项的状态更改时 this.disabled 都会被覆盖,从而反映列表的最后状态并将其应用于所有项目。我更新了我的[attr.disabled] = "item.id == 1 ? true : null",现在只有真正应该禁用的项目被禁用。
| 归档时间: |
|
| 查看次数: |
5178 次 |
| 最近记录: |