angular установить неотмеченный флажок в false в сериализованных данных

Я бы хотел, чтобы мой флажок был инициализирован как false, а не NULL, потому что форма установит значение флажка только в false, если он сначала проверен и не отмечен, в противном случае он останется пустым, и я получаю эту ошибку.

Ошибка преобразования значения {null} в тип 'System.Boolean'. Путь 'inStock', строка 1, позиция 84.

Как мне инициализировать данные формы как false с помощью шаблонных форм в Angular?

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);
  });
}

1 ответ

Каждый раз, когда вы запускаете метод сброса, будет установлено значение from равным null, в этом случае вы можете указать значение по умолчанию в false, как это

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

и вам нужно установить начальное значение во время создания на false вместо пустой строки, если вы не вызываете остальные значения метода, как указано выше.

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

проверьте эту демонстрацию ⚡⚡, где я рассмотрю все случаи, когда значение элемента управления формой может иметь значение null и почему это исправить

Другие вопросы по тегам