我有这个问题,在ngOnInit中我预先形成一个http GET来记录数据以填充表格。此表单本质上是一个页面,允许用户编辑和保存信息回数据库。我遇到的问题是,如果用户已填写表单并选中此复选框,请说明前一个PUT,显然model.BooleanValue = true,并在页面初始化时选中复选框。
select contactid,Title,FirstName,MiddleName,
case COALESCE(MiddleName, 'NULLVALUE')
when 'R.' then 'Robert'
when 'B.' then 'Bids'
when 'J.' then 'John'
when 'NULLVALUE' then 'New Name'
else 'No Name'
end, LastName from Person.Contact
但是,假设我没有对复选框进行任何更改(仍然从http GET检查复选框)并且我预先形成PUT(不以任何方式编辑复选框)。当我将表单复选框值分配给model.BooleanValue时,复选框值/ checked返回null而不是true。
这是我正在使用的FormToModel方法以及模型。 (让我们假设ngOnInit - GET工作并适当地分配了复选框以检查并且model.Boolean值为true)
<input type="checkbox" formControlName="isBoolean" [checked]="model?.BooleanValue" />
GET和PUT工作正常,唯一的问题是当我尝试在PUT期间分配model.BooleanValue = isBoolean.value时(这会导致isBoolean值为null,因此赋值为false,这显然不是布尔值在窗体或模型中可视化的复选框。
另请注意:如果取消选中并重新检查复选框,则值将传递为true而不是null。因此,似乎需要与复选框进行交互才能发送正确的值。
它可能很容易修复,但我似乎无法使它工作......任何见解都会非常感激。
答案 0 :(得分:0)
显然我需要发布一个问题才能立即弄清楚...似乎添加[ngModel]修复了问题...简单修复...
<input type="checkbox" formControlName="isBoolean" [ngModel]="model?.BooleanValue" [checked]="model?.BooleanValue" />