ОШИБКА TypeError: date.equals не является функцией, когда я добавляю ngb datepicker в angular - PullRequest
2 голосов
/ 30 января 2020
ERROR TypeError: date.equals is not a function

Я получаю эту ошибку на своей консоли, которую не знаю, как исправить

at GlobalsidebarComponent.isRange (globalsidebar.component.ts:45)
    at Object.eval [as updateRenderer] (GlobalsidebarComponent.html:26)
    at Object.debugUpdateRenderer [as updateRenderer] (core.js:14735)
    at checkAndUpdateView (core.js:13849)
    at callViewAction (core.js:14195)
    at execEmbeddedViewsAction (core.js:14153)
    at checkAndUpdateView (core.js:13845)
    at callViewAction (core.js:14195)
    at execEmbeddedViewsAction (core.js:14153)
    at checkAndUpdateView (core.js:13845)

Снимок экрана выбора даты

enter image description here

1 Ответ

1 голос
/ 30 января 2020

ngb-datepicker не использует объект Date по умолчанию.

Datepicker использует интерфейс NgbDateStruct в качестве модели, а не собственный объект Date. Это простая структура данных с 3 полями, но обратите внимание, что месяцы начинаются с 1 (как в ISO 8601).

api

Итак, чтобы обновить дату Возьмите NgbDate, который вы должны сделать:

const date = new Date();
const ngbDate = new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate());  

Однако я считаю, что вы также можете указать модулю использовать собственную дату. Для этого вам нужно добавить это к поставщикам вашего AppModule:

providers: [{provide: NgbDateAdapter, useClass: NgbDateNativeAdapter}]
...