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 и почему это исправить