* ПРИМЕЧАНИЕ: если у кого-то есть лучший способ сделать это, у меня все уши.
Я пытаюсь создать форму с тремя переключателями - два со статическим значением и одинс пользовательским, сгенерированным пользователем значением.Вот что происходит:
У меня по умолчанию установлено значение один:
Когда я нажимаю два, все работает как положено:
Когда я нажимаю настраиваемую радиокнопку, все работает должным образом:
Когда явведите значение, объект корректно видоизменится, но значение формы (которое установлено на один из ключей объекта) не обновляется:
Я могу вернуться к двум и получить ожидаемое поведение:
И когда я затем вернусь к трем, я увижу ожидаемое поведение:
Вот мой код:
test.html
<form [formGroup]="myForm" novalidate>
<label for="every_fifteen_minutes">
<input id="two" type="radio" formControlName="test" value="one">
<span class="input_text">This [value] will always be one</span>
</label>
<label for="two">
<input id="two" type="radio" formControlName="test" value="two">
<span class="input_text">This [value] will always be two</span>
</label>
<label for="three">
<input id="three" type="radio" formControlName="test" [(value)]="myObj.strKey">
<span>This [value] should be set to the input value:</span>
<input type="text" [(ngModel)]="myObj.strKey" [ngModelOptions]="{standalone: true}">
</label>
</form>
<div>this.myObj.str: {{getThat()}}</div>
<div>this: {{getThis()}}</div>
test.component.ts
myForm: any;
myObj: any = {
strKey: ""
}
private _buildForm() {
this.myForm = this.fb.group({
'test': ['1', Validators.required],
})
}
ngOnInit() {
this._buildForm();
}
getThat(): number {
return this.myForm.get('test').value
}
getThis(): string {
return this.myObj.strKey;
}
ТАК, мой вопрос: почему обновление происходит не сразу, как я могу это сделать, и возможно ли это сделать вменее сложный способ?