Praca z Custom DateAdapter for Angular Material 2 DatePicker.

To jest mój pierwszy post na blogu na Medium, a także pierwszy raz, kiedy piszę coś związanego z Angular Material . Projekt Material 2 został przepisany i jest w ciągłym rozwoju (faza Beta). Zespół Material wykonuje świetną robotę, wypuszczając nowe komponenty, naprawiając problemy i ułatwiając życie programistom Angular :).

Wracając do tematu mojego bloga: Custom DateAdapter . Niedawno w moim projekcie miałem scenariusz, w którym musiałem podać niestandardowy format daty (RRRR-MM-DD), ten format różni się od domyślnego formatu, który jest dostarczany przez komponent selektora daty (MM / DD / RRRR). Dokumentacja mówi, że utworzenie niestandardowego formatu daty (może to być dowolny format) jest tak proste, jak rozszerzenie DateAdapter (zaufaj mi, nie było to dla mnie łatwe), ale przykład tego samego nie jest jeszcze dostępny na stronie internetowej . Tak więc przeszukałem ich stronę z problemami na Githubie, Stackoverflow i na wielu przykładach znalazłem sposób implementacji naszego własnego Custom DateAdapter.

Utworzyłem plik date-picker.module, który chciałbym udostępnić tutaj. To nie jest coś, co nie jest dostępne w Internecie, po prostu zajęło mi trochę czasu, aby to rozgryźć, więc pomyślałem, że byłoby wspaniale mieć ten moduł jako przykład dla każdego, kto szuka niestandardowego adaptera daty.

// Custom DateAdapter
import {NgModule} from '@angular/core';
import {MdDatepickerModule, MdNativeDateModule, NativeDateAdapter, DateAdapter, MD_DATE_FORMATS} from '@angular/material';

// extend NativeDateAdapter's format method to specify the date format.
export class CustomDateAdapter extends NativeDateAdapter {
   format(date: Date, displayFormat: Object): string {
      if (displayFormat === 'input') {
         const day = date.getUTCDate();
         const month = date.getUTCMonth() + 1;
         const year = date.getFullYear();
         // Return the format as per your requirement
         return `${year}-${month}-${day}`;
      } else {
         return date.toDateString();
      }
   }
   
   // If required extend other NativeDateAdapter methods.
}

const MY_DATE_FORMATS = {
   parse: {
      dateInput: {month: 'short', year: 'numeric', day: 'numeric'}
   },
   display: {
      dateInput: 'input',
      monthYearLabel: {year: 'numeric', month: 'short'},
      dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},
      monthYearA11yLabel: {year: 'numeric', month: 'long'},
   }
};

@NgModule({
   declarations: [],
   imports: [],
   exports: [MdDatepickerModule, MdNativeDateModule],
   providers: [
      {
         provide: DateAdapter, useClass: CustomDateAdapter
      },
      {
         provide: MD_DATE_FORMATS, useValue: MY_DATE_FORMATS
      }
   ]
})

export class DatePickerModule {

}

Pozdrawiam cały zespół Angular .

To jest to na mój pierwszy wpis na blogu. Daj mi znać, jeśli masz jakieś uwagi / sugestie lub znajdziesz jakieś błędy. Dzięki!

Suggested posts

Moje najczęściej używane zasoby dotyczące kodowania

Moje najczęściej używane zasoby dotyczące kodowania

W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.

Seria Lit Library — 1: Głębokie zanurzenie w bibliotece lit-html

Seria Lit Library — 1: Głębokie zanurzenie w bibliotece lit-html

Celem tej serii blogów jest zagłębienie się w bibliotekę Lit i uzyskanie pełnego zrozumienia jej unikalnych funkcji oraz tego, jak wyróżnia się na tle innych bibliotek i frameworków na rynku. Cykl podzielony jest na trzy części, obejmujące takie tematy jak 1.

Related posts

Prześladowania chrześcijan: przestępstwo z nienawiści, o którym nie mówimy

Zapomnij o islamofobii: Chrześcijanie (i Żydzi) są głównymi ofiarami przestępstw z nienawiści na tle religijnym.

Prześladowania chrześcijan: przestępstwo z nienawiści, o którym nie mówimy

Każdy racjonalnie myślący wie, że w kręgach politycznych i medialnych dominuje lewica, nawet skrajna lewica, co powoduje zachwianie równowagi w dyskursie politycznym. W dziedzinie religii ta nierównowaga jest wyraźnie widoczna: lewicowe gazety i sieci nie spieszą się z obroną wiary chrześcijańskiej.

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

Czy Stany Zjednoczone mogą zrobić zasadniczy krok, by nie utożsamiać zachowania rasistowskiego z byciem dobrym Amerykaninem?

Zabójstwo Jordana Neely'ego i problem „patriotycznego” rasizmu

[Ostrzeżenie: ten esej zawiera zrzuty ekranowe ludzi wychwalających mordercę Jordana Neely'ego.] Funkcjonariusze organów ścigania w końcu - i być może niechętnie - oskarżyli Daniela Penny'ego, człowieka, który dusił Jordana Neely'ego aż do śmierci, o to zabójstwo.

Wyszukiwanie informacji o nazwach domen

Fragment książki Small, Sharp Software Tools autorstwa Briana P. Hogana

Wyszukiwanie informacji o nazwach domen

Kiedy wysyłasz żądanie do facebook.com, Twój komputer wyszukuje nazwę domeny, aby przetłumaczyć tę nazwę domeny na adres IP, aby komputer mógł nawiązać to połączenie.

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Przejście do nowej kariery może być niezwykle trudne, jeśli spróbujesz zrobić to sam. Ważne jest, aby znaleźć odpowiedzialnych partnerów, którzy są na tym samym poziomie uczenia się co ty, którzy mają podobne cele, wytrwałość i motywację.