проверка angular formbuilder

#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:

он проверяет наличие:

  1. значение элемента управления не должно быть нулевым / неопределенным
  2. если длина строки / массива не должна быть равна 0

Итак, поскольку [null] это массив длиной 1, он считается действительным по angular

Вы можете обратиться к исходному коду здесь и здесь

Комментарии:

1. спасибо, я снова отладил и увидел разницу