Я новичок в Angular 2, поэтому мне понадобится ваш совет для достижения развития. Я работаю над компонентом формы создания/обновления. У меня есть список флажков со значениями по умолчанию (проверено или нет, это зависит от службы). Вот мой код:
@Component({
selector: 'app-campaign',
template: `
<form [formGroup]="campaignForm" (ngSubmit)="saveCampaign()" novalidate>
<label for="formations">Formations</label>
<ul *ngFor="let formation of formations">
<li>
<label>
<input
type="checkbox"
[attr.checked]="formation.formationCochee == 1 ? 'checked' : null">
{{formation.formation}}
</label>
</li>
</ul>
<input
type="submit"
class="btn btn-primary"
value="Save"
[disabled]="campaignForm.invalid"/>
</form
`,
styleUrls: ['./campaign.component.css'],
providers: [CampaignService, FormationService]
})
export class CampaignComponent implements OnInit {
id: number = 0;
campaignForm: FormGroup;
title: string = "New campaign";
errorMessage: any;
formations: Formation[];
constructor(
private _fb: FormBuilder,
private _campaignService : CampaignService,
private _formationService: FormationService
) {
this.campaignForm = this._fb.group({
id: ''
, description: ["", Validators.required]
// ...
});
if (this._avRoute.snapshot.params["id"]) {
this.id = parseInt( this._avRoute.snapshot.params["id"]);
}
}
ngOnInit() {
// Case : Update Form
if(this.id > 0){
this.title = 'Update';
this._formationService.selectedFormations(this.id)
.subscribe(formations =>
this.formations=formations['records']
);
}
// Case : Create Form
else {
this._formationService.listActiveFormations()
.subscribe(formations =>
this.formations=formations['records']
);
}
}
saveCampaign(){
this._campaignService.saveCampaign(this.campaignForm.value)
.subscribe(campaign => {
this._router.navigate(['campaigns']);
}, error => this.errorMessage = error )
}
}
Мои вопросы :
Как я могу установить свои данные по умолчанию для моего списка флажков?
Можно ли обновить эти значения по умолчанию, когда пользователь устанавливает или снимает флажки?
Является ли FormArray хорошим вариантом для решения моей проблемы?
И, пожалуйста, дайте мне знать, если вы видите плохие привычки в моем коде, у меня нет никаких возвратов по этому поводу ... Я много прошу, но я застрял на некоторое время ...
PS: я пытаюсь сделать это без существующего компонента, чтобы улучшить свои навыки работы с angular2.
Спасибо за ваши советы