【发布时间】:2018-10-27 08:58:18
【问题描述】:
我正在创建一个表单,其中只有 2 个合作伙伴选择,from2 需要选择一个单选按钮,首先加载默认选择的第一个合作伙伴,但有些无法正常工作
请检查以下代码:
<form #personalForm="ngForm" class="editForm" novalidate>
<div class="mainDiv">
<div>Select the type of Partner and click "Next"</div>
<div *ngFor='let partner of partners; let i = index' class="radio">
<label for="partnerSelection">
<input ngModel name="partnerSelection" id='partnerSelection' type="radio" [value]="partner" [checked]="selectedPartnerIndex === i"> {{ partner.partnerType }}
</label>
</div>
</div>
<div class="form-group text-center">
<button class="btn btn-success btn-outline-rounded btn-info" [disabled]="!personalForm.valid" (click)="goToNext(personalForm)">
Next
<span style="margin-left:10px;" class="glyphicon glyphicon-arrow-right"></span>
</button>
</div>
</form>
根据这里的评论是我保存和检索所选合作伙伴数据的组件文件代码。
ngOnInit() {
this.selectedPartnerIndex = this.formDataService.getParrtnership();
if(this.selectedPartnerIndex.partnerId == null){
this.selectedPartnerIndex = this.partners[0];
}
console.log('Personal feature loaded!',this.selectedPartnerIndex);
}
save(form: any): boolean {
if (!form.valid) {
return false;
}
this.formDataService.setParrtnership(this.selectedPartnerIndex);
return true;
}
goToNext(form: any) {
if (this.save(form)) {
// Navigate to the work page
this.router.navigate(['/headquarter']);
}
}
仍然没有选择第一个无线电输入。
【问题讨论】:
-
尝试删除输入单选中的 id 和 name 属性并查看结果。
-
为什么会有这么具体的原因?
-
因为 id 必须是唯一的,并且 ngModel 已经包含名称和其他属性,请参见此处的文档:(angular.io/api/forms/NgModel)
-
我已经删除了 id 和 name 属性,但它仍然不起作用我发现这个 stackoverflow.com/questions/42443903/… 我是因为这个 [checked] 属性不起作用。