ユーザはuib-datepickerカレンダー(https://angular-ui.github.io/bootstrap/)で日付を入力するか、入力することができます。ng-model-optionsの使用updateOn:uib-datepickerポップアップでのぼかし
<input
datepicker-append-to-body="calendarCtrl.appendToBody"
uib-datepicker-popup="calendarCtrl.dateFormat"
ng-model="calendarCtrl.ngModel"
ng-click="calendarCtrl.open"/>
は私がユーザーまで、NG-モデルを更新しないように、ユーザーのためのオプションを許可する必要があります:ユーザーが日付ピッカーがポップアップし、ユーザがここで選択を行うことができるように入力をクリックすると入力され、入力がぼやけています。これを行うために、ng-model-optionsを使用しようとしています。
ng-model-options={updateOn: 'blur'}
これは、入力にすると、ユーザーのタイプの日付の素晴らしい作品 - ブラーが発生するまでngModelが更新されず、任意の検証はぼかしまで走っていません。問題は、ユーザが開いているカレンダーをクリックして日付を選択したときに何も起こらないという点で、カレンダーポップアップの機能を壊してしまうことです。ユーザーがカレンダーをクリックすると、基本的にぼかしイベントが入力に発生しているので、私は仮定していますか?
誰もこの問題に遭遇しましたか? ng-model-optionsオプションやdatepickerの中にdatepickerから選択することはできますが、入力にぼかしが発生するまでng-modelを更新できないものがありますか?あなたは日付ピッカーでngModelのために一時的なプロパティng-model="calendarCtrl.tempSelectedDate"
を使用することができますように
おかげ
私は例を追加しました –
私のケースでは、入力をクリックするたびにng-blurが呼び出されていますが、ポップアップするとカレンダーがぼやけているためです。私のぼかし関数では、ngModelControllerを$ dirtyに設定しています。これにより、エラーの検証が開始されます。私は入力要素のキーダウンを聞き、入力を$ pristineに戻して解決することになった。ユーザーがカレンダーポップアップをクリックするか、または離れてクリックして入力をぼかすと、フォームは$ dirtyに戻され、検証エラーが検索されます。 Hackyソリューションは既存のコードに基づいているが、唯一の選択肢のようだ。 – techer