Угловой реактивный от после программной установки значения, форма остается в том же состоянии до конца функции, я не понимаю этого:
export class NewComponent {
constructor(
private fb: FormBuilder
){
}
profileForm = this.fb.group({
name: ['', Validators.required]
});
onButtonClick(){
this.profileForm.controls.topic.setValue('bla bla', {onlySelf: true});
console.log(this.profileForm);
}
}
// FormGroup {validator: null, asyncValidator: null, _onCollectionChange: ƒ, pristine: true, touched: false, …}
// asyncValidator: null
// controls: {topic: FormControl, hidden: FormControl, title: FormControl, language: FormControl, description: FormControl, …}
// errors: null
// pristine: true
// status: "INVALID"
// statusChanges: EventEmitter {_isScalar: false, observers: Array(0), closed: false, isStopped: false, hasError: false, …}
// touched: false
// validator: null
// value: {title: ""}
// valueChanges: EventEmitter {_isScalar: false, observers: Array(0), closed: false, isStopped: false, hasError: false, …}
// _onCollectionChange: () => this._updateDomValue()
// _onDisabledChange: []
// dirty: (...)
// disabled: (...)
// enabled: (...)
// invalid: (...)
// parent: (...)
// pending: (...)
// root: (...)
// untouched: (...)
// updateOn: (...)
// valid: (...)
// __proto__: AbstractControl
Как вы можете видеть, "значение" по-прежнему имеет{title: ""} controls.title.value действительно изменилось, но не изменило значение.
Как сохранить изменения?это "push ()" в некотором роде?почему значение не установлено и как мне правильно установить его?
потому что, когда вы вводите в поле формы, объект «значение» также обновляется, и именно этот вы используете для обращения к состоянию и больше подходит для вариантов использования геттера.