У меня есть форма, где я бы хотел, чтобы пользователь редактировал подписку на журнал, которую он хотел бы получить. Код выглядит следующим образом:Как обрабатывать группу checkbox в Angular 2 RC5?
Компонент:
export class OrderFormComponent {
subscriptions = [
{id: 'weekly', display: 'Weekly newsletter'},
{id: 'monthly', display: 'Monthly newsletter'},
{id: 'quarterly', display: 'Quarterly newsletter'},
];
mySubs = [
this.subscriptions[1]
]
order = new FormGroup({
subs: new FormArray(this.mySubs.map(sub => new FormControl(sub)), Validations.required) //Lost at this part
});
}
Шаблон:
<form [formGroup]="order">
<div formArrayName="subs">
<label>Sign me up for newsletters</label>
<p *ngFor="let s of subscriptions; let i=index">
<input type="checkbox" [value]="s.id" [formControlName]="i" /> {{ s.display }}
</p>
</div>
<div>
<input type="checkbox" formControlName="agree" /> I agree to the terms and conditions.
</div>
{{ order.value | json }}
Когда я запустить приложение, три галочки отображаются, но только один проверяется (неправильно один в этом). Тот, который проверен, имеет ярлык, а другие - нет.
Что я здесь делаю неправильно?
Как '[checked] =" subscription.schedules.includes (schedule) "работать, поскольку' subscription.schedules' никогда не изменяется? – Kevin
Я честно не помню, как все остальное было подключено, чтобы оно работало. С тех пор я перешел от Углового. Извините:/ – kshep92
Отличный ответ! Благодарю. Это позволяет мне избежать создания настраиваемого компонента для аналогичной задачи –