HTML 复选框 [checked]="model?.value" returns 分配给模型时为 null 属性
HTML checkbox with [checked]="model?.value" returns null when assigned to a model property
我遇到这个问题,在 ngOnInit 中我执行了一个 http GET 记录数据来填写表格。此表单本质上是一个页面,允许用户编辑信息并将信息保存回数据库。我 运行 遇到的问题是,如果用户填写了表单并在前面的 PUT 中选中了此复选框,显然 model.BooleanValue = true 并且在页面初始化时选中了该复选框。
<input type="checkbox" formControlName="isBoolean" [checked]="model?.BooleanValue" />
但是,假设我没有对复选框进行任何更改(复选框仍然从 http GET 中选中)并且我执行了 PUT(没有以任何方式编辑复选框)。当我将表单复选框值分配给 model.BooleanValue 时,复选框 value/checked returns null 而不是 true。
这是我正在使用的 FormToModel 方法和模型。 (让我们假设 ngOnInit - GET 工作并适当地将复选框分配给选中并且 model.Boolean 值为 true)
export class BoolModel {
public BooleanValue: Boolean;
}
FormToModel(f: FormGroup) {
var model = new BoolModel();
model.BooleanValue = f.controls['isBoolean'].value ? true : false;
return model;
}
GET 和 PUT 工作正常,唯一的问题是当我尝试在 PUT 期间分配 model.BooleanValue = isBoolean.value 时(这导致 isBoolean 值为 null,因此分配为 false显然不是表单或模型中视觉上复选框的布尔值。
另请注意:如果我取消选中并重新选中该复选框,该值将传递为 true 而不是 null。因此,似乎需要与复选框进行交互才能发送正确的值。
它可能很容易修复,但我似乎无法让它工作...任何见解将不胜感激。
好吧,显然我需要 post 一个问题才能立即弄清楚...似乎添加 [ngModel] 可以解决问题...简单修复...
<input type="checkbox" formControlName="isBoolean" [ngModel]="model?.BooleanValue" [checked]="model?.BooleanValue" />
我遇到这个问题,在 ngOnInit 中我执行了一个 http GET 记录数据来填写表格。此表单本质上是一个页面,允许用户编辑信息并将信息保存回数据库。我 运行 遇到的问题是,如果用户填写了表单并在前面的 PUT 中选中了此复选框,显然 model.BooleanValue = true 并且在页面初始化时选中了该复选框。
<input type="checkbox" formControlName="isBoolean" [checked]="model?.BooleanValue" />
但是,假设我没有对复选框进行任何更改(复选框仍然从 http GET 中选中)并且我执行了 PUT(没有以任何方式编辑复选框)。当我将表单复选框值分配给 model.BooleanValue 时,复选框 value/checked returns null 而不是 true。
这是我正在使用的 FormToModel 方法和模型。 (让我们假设 ngOnInit - GET 工作并适当地将复选框分配给选中并且 model.Boolean 值为 true)
export class BoolModel {
public BooleanValue: Boolean;
}
FormToModel(f: FormGroup) {
var model = new BoolModel();
model.BooleanValue = f.controls['isBoolean'].value ? true : false;
return model;
}
GET 和 PUT 工作正常,唯一的问题是当我尝试在 PUT 期间分配 model.BooleanValue = isBoolean.value 时(这导致 isBoolean 值为 null,因此分配为 false显然不是表单或模型中视觉上复选框的布尔值。
另请注意:如果我取消选中并重新选中该复选框,该值将传递为 true 而不是 null。因此,似乎需要与复选框进行交互才能发送正确的值。
它可能很容易修复,但我似乎无法让它工作...任何见解将不胜感激。
好吧,显然我需要 post 一个问题才能立即弄清楚...似乎添加 [ngModel] 可以解决问题...简单修复...
<input type="checkbox" formControlName="isBoolean" [ngModel]="model?.BooleanValue" [checked]="model?.BooleanValue" />