#angular #formbuilder
#angular #formbuilder
Вопрос:
Я проверил свою форму с помощью двух частей кода, приведенных ниже:
this.formAdd = this.formBuilder.group({
objectId: [null, [Validators.required]],
objectOrder: [null, [Validators.required]],
objectName: [null, [Validators.required]],
objectCreateDate: [null, [Validators.required]],
objectSex: [null, [Validators.required]],
objectAddress: [null, [Validators.required]],
objectNational: [null, [Validators.required]],
objectType: [null, [Validators.required]],
});
и
this.formUpdate = this.formBuilder.group({
objectId: [[null], [Validators.required]],
objectOrder: [[null], [Validators.required]],
objectName: [[null], [Validators.required]],
objectCreateDate: [[null], [Validators.required]],
objectSex: [[null], [Validators.required]],
objectAddress: [[null], [Validators.required]],
objectNational: [[null], [Validators.required]],
objectType: [[null], [Validators.required]],
});
Первая часть используется для проверки моей формы при добавлении новой записи, вторая часть используется при обновлении существующей записи, когда я пытаюсь применить вторую часть кода для добавления формы, это не работает, и форма добавления всегда действительна, даже если значение равно null.
В чем разница между использованием ‘[]’ и неиспользованием ‘[]’
Ответ №1:
Это зависит от способа построения средства проверки Angular required:
он проверяет наличие:
- значение элемента управления не должно быть нулевым / неопределенным
- если длина строки / массива не должна быть равна 0
Итак, поскольку [null]
это массив длиной 1, он считается действительным по angular
Комментарии:
1. спасибо, я снова отладил и увидел разницу