我在Angular2中有一組單選按鈕。我想用[formControl]綁定每組單選按鈕的值,但是單選按鈕失去了它們通常的互斥性。無法在Angular2的一組單選按鈕上使用[formControl]
例子:
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import { ReactiveFormsModule } from '@angular/forms'
import { FormBuilder, FormGroup, FormControl } from '@angular/forms'
@Component({
selector: 'my-app',
template: `
<div *ngFor="let formGroup of groups; let i = index">
<form *ngIf="formGroup" [formGroup]="formGroup">
<label *ngFor="let mc of codes">
<input type="radio" [checked]="mc === formGroup.controls.code.value"
[formControl]="formGroup.controls.code"> {{mc}}
</label>
</form>
</div>
`,
})
export class App {
groups: FormGroup[] = []
codes: number[] = ['a','b','c']
constructor(private formBuilder: FormBuilder) {
for (let i of [0, 1, 2]) {
this.groups.push(this.formBuilder.group(
{code: this.codes[i]}
))
}
}
}
@NgModule({
imports: [ BrowserModule, ReactiveFormsModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
當我更換[formControl]="formGroup.controls.code"
與[value]="formGroup.controls.code.value"
,則單選按鈕按預期工作,不過呢,當然,我失去了formcontrol的數據綁定。
我編輯了一段代碼(也在plunkr中)以清楚發生什麼問題。
對於你在'radio-button'上使用'name'屬性是什麼?如果你不使用它,你可以將它簡化爲:' {{mc}}'。 – developer033
如果我這樣做了,我的闖入者仍然不起作用。 - 組的所有電臺項目都會被選中 – jjmurre