инициализация ReactiveFrom FormControl с новым FormControl (VALUE) против нового FormControl ({значение: VALUE}) - PullRequest
0 голосов
/ 29 января 2020

Я всегда использовал эти два подхода взаимозаменяемо при инициализации 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. (Я бы хотел, чтобы они были, но опять же, как бы я добавил отключенное условие в форму, поддерживающую то же поведение?)

Я думал, что эти два подхода до сих пор взаимозаменяемы ... Ваш опыт / советы?

Большое спасибо.

...