2017-11-06 10 views
0

primeng calendar component을 사용하는 각 응용 프로그램이 있습니다.primeng 달력에서 월 첫날 만 선택 허용

매월 첫 번째 날짜 만 선택하도록 제한을 추가해야합니다.

구성 요소에는 disabledDates 속성 또는 특정 요일 (disabledDays)을 설정하여 특정 날짜를 사용하지 못하게하는 기능이 있습니다. 그러나 나는 그 달의 날을 무력하게 할 어떤 것도 발견하지 못했습니다.

누구든지 이것을 구현하는 방법에 대한 아이디어가 있습니까?

+0

나는 그 날 중 1 시간을 선택하는 옵션 만 사용자에게 제공 할 때 30 일 달력을 사용하지 않을 것을 제안합니다. 년/월 선택기를 사용하십시오. – Joe

+0

@Joe 이해합니다. 앞으로 다른 날짜가 필요할 것입니다. –

답변

1

좋아. disabledDates 기능을 사용할 수는 있지만 분명히 매월 게재 할 수는 없습니다. 따라서 한 달간 사용 중지 된 날짜를 입력하고 onMonthChange 이벤트에 연결하여 사용 중지 된 날짜를 업데이트하는 것이 좋습니다. 같은과 함께

<p-calendar [disabledDates]="invalidDates" (onMonthChange)="updateDisabledDates($event)"> 

: 사용자가 다른 달을 볼 때

public disabledDates: Date[] = []; 

function updateDisabledDates(event) { 
    const daysInMonth = new Date(event.year, event.month, 0).getDate(); 
    disabledDates = [] 
    for (let i = 2; i < daysInMonth; i++) { 
    console.log(i) 
    disabledDates.push(new Date(event.year, event.month, i)); 
    } 
} 

그것을 테스트하지 않습니다.

+0

감사합니다. 이 솔루션은 가끔씩 만 작동합니다. 선택 기능을 확인하는 검사가 이벤트 처리와 병행하여 수행되고 이것이 문제를 일으키는 것 같은 느낌이 들지만 확실하지 않습니다. 나는 디버깅을하고 있으며 무슨 일이 일어나고 있는지 이해하려고 노력하고있다. 또 다른 이상한 점은 내년 12 월에서 1 월로 전환 할 때마다 작동한다는 것입니다. 이유는 알 수 없습니다. –

+0

당신은 그것이 발사되고 있습니까? (오른쪽 달에 호출되는 기능에서 콘솔 아웃)? 나는 그것이 사용자가 그것을 선택했을 때 달이 바뀔 때에 만 해고 될까 걱정했다. – Joe

+0

예, 그렇습니다. 나는'console.log'를 사용하지는 않았지만. 디버거에서 브레이크 포인트를 사용했습니다. 버튼을 사용하여 달을 바꿀 때마다 올바른 달의 코드를 입력했습니다. –