I have a very similar situation, except my questions can be of various types, such as multiple choice / free text / record audio, so my Question
looks like this:
export interface Question {
style: "choose" | "write" | "speak";
prompt: string;
choices?: string[];
multi?: boolean;
answer?: string;
}
In the template, I merely bind to the answer
property of each question (showing only the multiple choice option because it’s closest to OP’s situation):
<ion-item *ngFor="let q of questionnaire">
<ion-select *ngIf="q.style === 'choose'"
[multiple]="q.multi" [(ngModel)]="q.answer">
<ion-option *ngFor="let choice of q.choices" [value]="choice">{{choice}}</ion-option>
</ion-select>
</ion-item>