2

PrimeNG カレンダーを使用して作成された日付ピッカーが添付された入力要素があります。

HTML 部分

<p-calendar showAnim="slideDown" 
            id="calendar" 
            [showIcon]="true 
            [(ngModel)]="myDate" 
            (blur)="onBlurMethod($event)">
</p-calendar>

ここでは、PrimeNG カレンダー タグを使用しています。非表示のテキスト ボックスを 1 つ使用したので、更新された値を選択できますが、テキスト ボックスに反映されています。イベントで更新された値を取得するにはどうすればよいですか?

<input type="hidden" id = "datePickerText" [ngModel]="myDate">

ユーザーが入力要素に直接入力して日付を変更すると、上に示すように、入力要素のぼかしイベントで値を取得できます。しかし、ユーザーが datepicker から日付を変更した場合 (つまり、カレンダーの日付をクリックした場合)、blur ハンドラーは呼び出されません。

datepicker入力要素に入力するのではなく、を介して行われた選択された日付への変更を検出するにはどうすればよいですか?

4

3 に答える 3

1

別のアプローチとして、プロパティを使用getsetて変更を直接検出することもできます。

private _startDate: Date;

set startDate(date: Date)
{
    this._startDate = date;
    alert('changed');
}

get startDate(): Date
{
    return this._startDate;
}

どちらの方法を選択する場合でも、ロジックがいつトリガーされているかを把握し、不必要に実行されていないことを確認する必要があります。この方法は煩雑になり、懸念事項の分離の問題が発生する可能性があり、トリガーの結果としてリモート呼び出しを行う必要がある場合は、おそらくお勧めできません。

于 2016-12-17T02:20:41.560 に答える