RadioControlValueAccessor
Writes radio control values and listens to radio control changes.
NgModules
Selectors
input[type=radio][formControlName]
input[type=radio][formControl]
input[type=radio][ngModel]
Properties
Property | Description |
---|---|
onChange: () => { }
|
|
onTouched: () => { }
|
|
@Input()
|
|
@Input()
|
|
@Input()
|
Description
Used by NgModel
, FormControlDirective
, and FormControlName
to keep the view synced with the FormControl
model.
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'),
- });
- }
Methods
ParametersThere are no parameters. Returns
|
ParametersThere are no parameters. Returns
|
Parameters
Returns
|
Parameters
Returns
|
Parameters
Returns
|
Parameters
Returns
|
Parameters
Returns
|