0

我希望我的复选框被初始化为 false 而不是 NULL,因为表单只会在第一次选中和未选中时将复选框值设置为 false,否则它保持为空并且我收到此错误。

将值 {null} 转换为类型“System.Boolean”时出错。路径“inStock”,第 1 行,位置 84。

如何使用 Angular 中的模板表单将表单数据初始化为 false?

createRegisterForm() {
this.registerForm = this.fb.group({
  partname:['', Validators.required],
  partdescription : ['', Validators.required],
  parturl: ['',null],
  sku: ['',null],
  inStock: '',
  isActive: '' 
})

}

registerPart() {
if (this.registerForm.valid) {
  this.part = Object.assign({}, this.registerForm.value);
  this.partsService.add(this.part).subscribe(() => {
    this.alertify.success('Part Registered');
  }, error => {
    this.alertify.error(error);
  });
}
4

1 回答 1

0

每次运行重置方法时,都会将 from 值设置为null,在这种情况下,您可以像这样将值作为默认值提供为 false

this.registerForm.reset({
  inStock: false,
  isActive: false
});

并且您需要在创建过程中将初始值设置为 false 而不是空字符串,以防您不调用 rest 方法将值像上面那样。

createRegisterForm() {
this.registerForm = this.fb.group({
  partname:['', Validators.required],
  partdescription : ['', Validators.required],
  parturl: ['',null],
  sku: ['',null],
  inStock: false,
  isActive: false 
})
}

检查这个演示⚡⚡我涵盖了表单控件值可以最终为空的所有情况以及为什么要解决这个问题

于 2019-12-27T02:34:01.223 回答