Я всегда использовал эти два подхода взаимозаменяемо при инициализации FormControl()
, пока не наткнулся на пару различий в поведении.
APPROACH # 1:
this.userForm = new FormGroup({
name: new FormControl({value: this.rateCard.name}),
age: new FormControl({value: this.rateCard.age})
})
APPROACH # 2 :
this.userForm = new FormGroup({
name: new FormControl(this.rateCard.name),
age: new FormControl(this.rateCard.age)
})
1) СЦЕНАРИЙ 1, я должен инициализировать свой FormControl значением, поступающим из магазина.
ПОДХОД # 1 - ИТОГО: имя и возраст не , являющиеся инициализируется с ожидаемыми значениями. Они просто пустые.
ПОДХОД № 2 - РЕЗУЛЬТАТ: имя и возраст правильно инициализированы с ожидаемыми значениями. Но что, если мне нужно добавить условие disabled
к одному из FormControls
? Angular препятствует атрибуту disabled
в шаблонах при использовании ReactiveForms
.
2) СЦЕНАРИЙ 2, I getRawValues()
из формы, без касания любого из FormControl
s.
ПОДХОД # 1 - РЕЗУЛЬТАТ: имя и возраст key: value
объектов, например name: {value: THE_NAME}, age: {value: THE_AGE}
. (и это имеет смысл, я бы сказал)
ПОДХОД # 2 - РЕЗУЛЬТАТ: имя и возраст присваиваются только их ожидаемые значения, как name: THE_NAME, age: THE_AGE
. (Я бы хотел, чтобы они были, но опять же, как бы я добавил отключенное условие в форму, поддерживающую то же поведение?)
Я думал, что эти два подхода до сих пор взаимозаменяемы ... Ваш опыт / советы?
Большое спасибо.