RadioControlValueAccessor
Stable Directive
What it does
Writes radio control values and listens to radio control changes.
Used by NgModel, FormControlDirective, and FormControlName to keep the view synced with the FormControl model.
How to use
If you have imported the FormsModule or the ReactiveFormsModule, this value accessor will be active on any radio control that has a form directive. You do not need to add a special selector to activate it.
How to use radio buttons with form directives
To use radio buttons in a template-driven form, you'll want to ensure that radio buttons in the same group have the same name attribute. Radio buttons with different name attributes do not affect each other.
import {Component} from '@angular/core';
@Component({
selector: 'example-app',
template: `
<form #f="ngForm">
<input type="radio" value="beef" name="food" [(ngModel)]="myFood"> Beef
<input type="radio" value="lamb" name="food" [(ngModel)]="myFood"> Lamb
<input type="radio" value="fish" name="food" [(ngModel)]="myFood"> Fish
</form>
<p>Form value: {{ f.value | json }}</p> <!-- {food: 'lamb' } -->
<p>myFood value: {{ myFood }}</p> <!-- 'lamb' -->
`,
})
export class RadioButtonComp {
myFood = 'lamb';
}
When using radio buttons in a reactive form, radio buttons in the same group should have the same formControlName. You can also add a name attribute, but it's optional.
import {Component} from '@angular/core';
import {FormControl, FormGroup} from '@angular/forms';
@Component({
selector: 'example-app',
template: `
<form [formGroup]="form">
<input type="radio" formControlName="food" value="beef" > Beef
<input type="radio" formControlName="food" value="lamb"> Lamb
<input type="radio" formControlName="food" value="fish"> Fish
</form>
<p>Form value: {{ form.value | json }}</p> <!-- {food: 'lamb' } -->
`,
})
export class ReactiveRadioButtonComp {
form = new FormGroup({
food: new FormControl('lamb'),
});
}
-
npm package:
@angular/forms
Class Overview
class RadioControlValueAccessor implements ControlValueAccessor,
constructor(_renderer: Renderer, _elementRef: ElementRef, _registry: RadioControlRegistry, _injector: Injector)
onChange : () => {}
onTouched : () => {}
name : string
formControlName : string
value : any
ngOnInit() : void
ngOnDestroy() : void
writeValue(value: any) : void
registerOnChange(fn: (_: any) => {}) : void
fireUncheck(value: any) : void
registerOnTouched(fn: () => {}) : void
setDisabledState(isDisabled: boolean) : void
}
Selectors
input[type=radio][formControlName]
input[type=radio][formControl]
input[type=radio][ngModel]
Class Description
Constructor
constructor(_renderer: Renderer, _elementRef: ElementRef, _registry: RadioControlRegistry, _injector: Injector)
Class Details
onChange : () => {}
onTouched : () => {}
name : string
formControlName : string
value : any
ngOnInit() : void
ngOnDestroy() : void
writeValue(value: any) : void
registerOnChange(fn: (_: any) => {}) : void
fireUncheck(value: any) : void
registerOnTouched(fn: () => {}) : void
setDisabledState(isDisabled: boolean) : void
exported from @angular/forms/index, defined in @angular/forms/src/directives/radio_control_value_accessor.ts
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/forms/index/RadioControlValueAccessor-directive.html