带有 [选中]= 的 HTML 复选框"model?.value"在分配给模型属性时返回 null



我遇到了这个问题,在ngOnInit中,我为记录数据预生成了一个http GET来填充表单。这个表单本质上是一个允许用户编辑信息并将信息保存回数据库的页面。我遇到的问题是,如果用户填写了表单并在前面的PUT中选中了这个复选框,那么显然是模型。BooleanValue=true,并且在初始化页面时选中该复选框。

<input type="checkbox" formControlName="isBoolean" [checked]="model?.BooleanValue" />

但是,假设我没有对复选框进行任何更改(该复选框仍然是从http GET中选中的),并且我预制了一个PUT(没有以任何方式编辑复选框)。将表单复选框值分配给模型时。BooleanValue复选框值/checked返回null而不是true。

这是我正在使用的FormToModel方法以及模型。(假设ngOnInit-GET有效,并适当地分配了复选框以选中和模型。布尔值为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期间的BooleanValue=isBoolean.value(这会导致isBoolean值为null,因此赋值为false,这显然不是表单或模型中复选框的布尔值)。

另请注意:如果我取消选中并重新检查复选框,则该值将作为true而非null传递。因此,似乎需要与复选框交互才能发送正确的值。

这可能很简单,但我似乎无法让它工作。。。如有任何见解,我们将不胜感激。

显然我需要发布一个问题来立即解决。。。添加[ngModel]似乎解决了问题。。。简单修复。。。

<input type="checkbox" formControlName="isBoolean" [ngModel]="model?.BooleanValue" [checked]="model?.BooleanValue" />

最新更新