2017-11-06 8 views
0

primeng calendar componentを使用する角度アプリケーションがあります。プリンスカレンダーで月の初日のみを選択することができます

毎月の最初の日付を選択するための制限を追加する必要があります。

このコンポーネントには、disabledDatesプロパティ、または特定の曜日(disabledDays)を設定することで特定の日付を無効にする機能があります。しかし、私は月の日を無効にするものは見つかりませんでした。

これを実装する方法を知っている人はいますか?

+0

私は30日間のカレンダーを使用しないことをお勧めします。年/月セレクタを使用します。 – Joe

+0

@Joe私は理解しています。私は将来、いくつかの他の日付が必要になります。 –

答えて

1

いいえ。 disabledDatesの機能を使用することはできますが、月の毎日を入れるのは可能ではないことは明らかです。無効な日付を1か月分入力してから、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'を使用しませんでしたが。私はデバッガでブレーキポイントを使用しました - 私は正しい月のコードを入力したボタンを使用して月を変更するたびに。 –

関連する問題