When using Radio button for Tamplate driven form, we want to change to the value change and preform some action.
import { Component, Input } from '@angular/core';
import { Passenger } from '../../models/passenger.interface';
@Component({
selector: 'passenger-form',
styleUrls: ['passenger-form.component.scss'],
template: `
<form #form="ngForm" novalidate>
{{ detail | json }}
<div>
Passenger name:
<input
type="text"
name="fullname"
[ngModel]="detail?.fullname">
</div>
<div>
Passenger ID:
<input
type="number"
name="id"
[ngModel]="detail?.id">
</div>
<div>
<label>
<input
type="radio"
[value]="true"
name="checkedIn"
[ngModel]="detail?.checkedIn"
(ngModelChange)="toggleCheckIn($event)">
Yes
</label>
<label>
<input
type="radio"
[value]="false"
name="checkedIn"
[ngModel]="detail?.checkedIn"
(ngModelChange)="toggleCheckIn($event)">
No
</label>
</div>
<div *ngIf="form.value.checkedIn">
Check in date:
<input
type="number"
name="checkInDate"
[ngModel]="detail?.checkInDate">
</div>
{{ form.value | json }}
</form>
`
})
export class PassengerFormComponent {
@Input()
detail: Passenger;
toggleCheckIn(checkedIn: boolean) {
if (checkedIn) {
this.detail.checkInDate = Date.now();
}
}
}