Skip to content
This repository was archived by the owner on Mar 2, 2018. It is now read-only.

Commit 8387933

Browse files
committed
issue #182, make it not to format date when user in typing
1 parent 123054c commit 8387933

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

app/directive-test.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ var templateStr = `
3838
(popupClosed)="onDatetimePickerClosed()"
3939
[close-on-select]="false" />
4040
</ngui-utils-4>
41+
<button (click)="date3='Thu Jan 31 2015 00:00:00 GMT-0500 (EST)'">Change</button>
4142
<pre>{{templateStr | htmlCode:'ngui-utils-4'}}</pre>
4243
</fieldset>
4344

src/datetime-picker.directive.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
6363

6464
inputEl: HTMLInputElement;
6565
clickedDatetimePicker: boolean;
66+
userModifyingValue: boolean = false;
6667

6768
constructor (
6869
private resolver:ComponentFactoryResolver,
@@ -162,9 +163,14 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
162163
if (this.inputEl) {
163164
this.inputEl.addEventListener('focus', this.showDatetimePicker);
164165
this.inputEl.addEventListener('blur', this.hideDatetimePicker);
166+
this.inputEl.addEventListener('keydown', this.handleKeyDown);
165167
}
166168
}
167169

170+
handleKeyDown = (event) => {
171+
this.userModifyingValue = true;
172+
}
173+
168174

169175
ngOnChanges(changes: SimpleChanges) {
170176
let date;
@@ -177,15 +183,17 @@ export class NguiDatetimePickerDirective implements OnInit, OnChanges {
177183
this.updateDatepicker();
178184
} else if (date && typeof date === 'string') {
179185
/** if program assigns a string value, then format to date later */
180-
setTimeout( () => {
181-
let dt = this.getDate(date);
182-
dt.toString = () => NguiDatetime.formatDate(dt, this.dateFormat, this.dateOnly);
183-
this.ngModel = dt;
184-
this.inputEl.value = ''+dt;
185-
})
186+
if (!this.userModifyingValue) {
187+
setTimeout( () => {
188+
let dt = this.getDate(date);
189+
dt.toString = () => NguiDatetime.formatDate(dt, this.dateFormat, this.dateOnly);
190+
this.ngModel = dt;
191+
this.inputEl.value = ''+dt;
192+
})
193+
}
186194
}
187195
}
188-
196+
this.userModifyingValue = false;
189197
}
190198

191199
updateDatepicker() {

0 commit comments

Comments
 (0)