В вашем случае вы можете использовать Реактивные формы . Реактивные формы создают двустороннюю привязку между вашим представлением и моделью, поэтому каждый раз, когда вы изменяете какие-либо входные данные в своем представлении, ваш соответствующий объект автоматически изменяется.
Чтобы дать вам представление, в вашем случае это будет примерно так:
В вашем компоненте:
import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-profile-editor',
templateUrl: './profile-editor.component.html',
styleUrls: ['./profile-editor.component.css']
})
export class SampleComponent {
yourForm = new FormGroup({
firstSegment: new FormGroup({
firstAnswer: new FormControl(''),
secondAnswer: new FormControl('')
}),
secondSegment: new FormGroup({
firstAnswer: new FormControl(''),
secondAnswer: new FormControl('')
})
});
}
А по вашему мнению:
<form [formGroup]="yourForm" (ngSubmit)="onSubmit(yourForm.value)">
<div formGroupName="firstSegment">
<label>
Question 1:
<input type="text" formControlName="firstAnswer">
</label>
<label>
Question 2:
<input type="text" formControlName="secondAnswer">
</label>
</div>
<div formGroupName="secondSegment">
<label>
Question 1:
<input type="text" formControlName="firstAnswer">
</label>
<label>
Question 2:
<input type="text" formControlName="secondAnswer">
</label>
</div>
</form>
Вы можете получить доступ к каждому элементу управления вашей формы, используя
this.yourForm.get("yourControlName").value
за использование их в ваших if
заявлениях
Таким образом, все ваши ответы будут автоматически сохраняться в вашей форме, и вы сможете получить доступ ко всем данным формы, используя
yourForm.value
Подробнее о реактивных формах здесь
Также посмотрите на вложенные формы здесь