Получить уникальное значение FormGroup / Control без использования getRawValue - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть основной компонент, который возвращает копии текущего содержимого формы. Но я не уверен, как получить значение из angular FormGroup без предоставления ссылки на value группы, в которую он был вызван. Поэтому, если копия извлекается с помощью .value и изменяется каким-либо другим компонентом, а затем у основного компонента запрашивается еще одна копия, она возвращает версию, которая была изменена каким-либо другим способом.

Из документов на значение кажется, что оно всегда должно быть копией текущего значения внутри фактического FormControls. Но это не так, и изменения, внесенные в результат вызова .value, продолжают обновлять значение FormGroup. Например:

var formValue = this.personForm.value;
formValue.name = 'Update assumed local copy'

дает, казалось бы, странные все true результаты:

formValue.name === 'Update assumed local copy'
this.personForm.value.name === 'Update assumed local copy' // What?

Я столкнулся с getRawValue(), который работает так, как я ожидал, но это также включает в себя отключенные элементы управления, которые я не хочу. Мне нужны только значения, которые будут присутствовать в .value, но я хочу, чтобы уникальный экземпляр возвращался, например getRawValue().

Я предполагаю, что, возможно, мне не удастся использовать JSON stringify / parse, но это было довольно неприятно, и я уверен, что я просто упускаю что-то очевидное здесь.

Вот пример стекаблица Я подбросил, который показывает много странностей, которые я испытываю.

...