Skip to content

Commit ab79a4d

Browse files
author
Thomas Plessis
committed
Update example to a reactive form.
Fix error when setting value to null.
1 parent df2e352 commit ab79a4d

File tree

6 files changed

+48
-32
lines changed

6 files changed

+48
-32
lines changed

bundles/ng2-datepicker.umd.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

bundles/ng2-datepicker.umd.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/app.module.ts

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
1-
import { NgModule } from '@angular/core';
2-
import { BrowserModule } from '@angular/platform-browser';
3-
import { CommonModule } from '@angular/common';
4-
import { AppComponent } from './app.component';
5-
import { AppHomeComponent } from './components/app-home';
6-
import { NgDatepickerModule } from './ng-datepicker';
1+
import {NgModule} from '@angular/core';
2+
import {BrowserModule} from '@angular/platform-browser';
3+
import {CommonModule} from '@angular/common';
4+
import {AppComponent} from './app.component';
5+
import {AppHomeComponent} from './components/app-home';
6+
import {NgDatepickerModule} from './ng-datepicker';
7+
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
78

89
@NgModule({
9-
declarations: [
10-
AppComponent,
11-
AppHomeComponent
12-
],
13-
imports: [
14-
BrowserModule,
15-
CommonModule,
16-
NgDatepickerModule
17-
],
18-
bootstrap: [ AppComponent ]
10+
declarations: [
11+
AppComponent,
12+
AppHomeComponent
13+
],
14+
imports: [
15+
BrowserModule,
16+
CommonModule,
17+
ReactiveFormsModule,
18+
FormsModule,
19+
NgDatepickerModule
20+
],
21+
bootstrap: [AppComponent]
1922
})
20-
export class AppModule { }
23+
export class AppModule {
24+
}

src/components/app-home/app-home.component.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
</div>
88
<div class="column is-6 is-offset-3">
99
<div class="datepicker-container">
10-
<ng-datepicker [(ngModel)]="date" [options]="options"></ng-datepicker>
10+
<form [formGroup]="form">
11+
<ng-datepicker formControlName="date" [options]="options"></ng-datepicker>
12+
<button (click)="onReset()">Reset form</button>
13+
</form>
1114
</div>
1215
</div>
1316
</div>
Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1-
import { Component } from '@angular/core';
1+
import {Component} from '@angular/core';
22
import {DatepickerOptions} from '../../ng-datepicker/ng-datepicker.component';
33
import * as enLocale from 'date-fns/locale/en';
44
import * as frLocale from 'date-fns/locale/fr';
5+
import {FormBuilder} from "@angular/forms";
56

67
@Component({
7-
selector: 'app-home',
8-
templateUrl: 'app-home.component.html'
8+
selector: 'app-home',
9+
templateUrl: 'app-home.component.html'
910
})
1011
export class AppHomeComponent {
11-
date: Date;
12-
options: DatepickerOptions = {
13-
locale: enLocale
14-
};
15-
constructor() {
16-
this.date = new Date();
17-
}
12+
date: Date;
13+
options: DatepickerOptions = {
14+
locale: enLocale
15+
};
16+
17+
form = this.fb.group({
18+
date: ['']
19+
});
20+
21+
constructor(private fb: FormBuilder) {}
22+
23+
onReset() {
24+
this.form.reset();
25+
}
1826
}

src/ng-datepicker/ng-datepicker.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,12 @@ export class NgDatepickerComponent implements ControlValueAccessor, OnInit, OnCh
269269
this.date = val;
270270
this.innerValue = val;
271271
this.init();
272-
this.displayValue = this.innerValue ? format(this.innerValue, this.displayFormat, this.locale) : '';
272+
this.displayValue = this.innerValue ? format(this.innerValue, this.displayFormat, this.locale) : '';
273273
this.barTitle = format(startOfMonth(val), this.barTitleFormat, this.locale);
274+
} else {
275+
this.date = new Date();
276+
this.innerValue = val;
277+
this.init();
274278
}
275279
}
276280

0 commit comments

Comments
 (0)