이것은 미디엄에 대한 나의 첫 번째 블로그 게시물이며 Angular Material 과 관련된 글을 쓰는 것은 처음 입니다. Material 2 프로젝트는 재 작성되었으며 지속적으로 개발 중입니다 (베타 단계). 머티리얼 팀은 새로운 구성 요소를 출시하고 문제를 해결하며 Angular 개발자의 삶을 쉽게 만드는 데 큰 역할을하고 있습니다.
내 블로그 주제 인 Custom DateAdapter로 돌아갑니다 . 최근 프로젝트에서 사용자 지정 날짜 형식 (YYYY-MM-DD)을 제공해야하는 시나리오가있었습니다.이 형식은 날짜 선택기 구성 요소 (MM / DD / YYYY)에서 제공하는 기본 형식과 다릅니다. 문서에 따르면 사용자 지정 날짜 형식 (모든 형식 일 수 있음)을 만드는 것은 DateAdapter를 확장하는 것만 큼 쉽습니다 (저를 믿으세요, 쉽지 않았습니다.). 웹 사이트에서 해당 예제를 아직 사용할 수 없습니다. . 그래서 Github 문제 페이지 인 Stackoverflow에서 약간의 검색을 수행하고 많은 예제를 통해 자체 Custom DateAdapter를 구현하는 방법을 알아 냈습니다.
여기서 공유하고 싶은 date-picker.module 파일을 만들었습니다. 이것은 인터넷에서 구할 수없는 것이 아닙니다. 단지 그것을 알아내는 데 시간이 걸렸기 때문에 사용자 지정 날짜 어댑터를 만들고자하는 사람에게이 모듈을 예제로 사용하는 것이 좋을 것이라고 생각했습니다.
// 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 {
}
Angular 팀 전체를 응원 합니다.
이것은 내 첫 블로그 게시물입니다. 피드백 / 제안이 있거나 오류를 발견하면 알려주십시오. 감사!
이번 주에 저는 일일 이메일 목록의 회원으로부터 이메일을 받았습니다. 그들은 알고 싶어했습니다. 매일, 매주, 매월 어떤 리소스를 방문합니까? 좋은 질문입니다! 제 작업 흐름과 제가 사용하는 주요 리소스에 대한 통찰력을 공유하게 되어 기쁩니다.
이 블로그 시리즈의 목적은 Lit 라이브러리를 깊이 탐구하고 Lit 라이브러리의 고유한 기능과 시장의 다른 라이브러리 및 프레임워크와 차별화되는 방법을 포괄적으로 이해하는 것입니다. 이 시리즈는 1과 같은 주제를 다루는 세 부분으로 나뉩니다.
나는 최근에 세계 최대의 전문 소셜 네트워크인 Linkedin에 있었고 내가 팔로우하는 프리랜서 디자이너의 게시물을 발견했는데 내 관심을 끌었습니다. 그들은 모두 비행기에서, 노트북과 함께 해변에서, 수영장에서, 멋진 전망이 있는 사무실에서 사진을 게시했습니다.
페트병, 유리병, 알루미늄캔, 그린에너지 패키지를 무심코 버린 적이 몇 번이나 되셨나요? 재활용에 대한 대가로 무언가를 얻을 수 있기를 몇 번이나 바랐습니까? 당신이 대부분의 사람들과 같다면 대답은 아마도 여러 번일 것입니다. 재활용은 종종 번거로움, 자질구레한 일 또는 즉각적이거나 실질적인 혜택을 가져오지 않는 의무로 간주됩니다.
오늘날의 상호 연결된 세계에서 사이버 공격의 위협은 그 어느 때보다 만연해 있습니다. 사이버 범죄자와 국가 행위자는 지속적으로 취약점을 악용하고 귀중한 데이터를 도용하여 모든 규모의 조직에 상당한 위험을 초래합니다.