2016-04-29 4 views
1

UI Bootstrap 1.3.2、Bootstrap 3.3.6、Angularjs 1.5.5を使用しますが、uib-datepicker-popupに問題があります。入力フィールドのuib-datepicker-popupカレンダーnull/NaN(最初にnullを入力した場合)

enter image description here

コード:

<input type="text" uib-datepicker-popup="dd.MM.yyyy" datepicker-options="datepickerOptions" ng-model="mydto.teilnahmebis" /> 

initDateオプション対応する入力フィールドの値が設定されていない/ nullである場合、カレンダーは、未定義の日付フィールド(ヌルは、NaN)を示します無視されます - コントローラのコード:

$scope.datepickerOptions = { 
        minDate : new Date('2010-01-01'), 
        initDate : new Date() 
       }; 

入力フィールドに値が既にある場合は、ポップアップが機能します。しかし、通常そうではありません。任意のアイデア、どのようにこの問題を解決するには?答えをありがとう。

+0

として設定している場合は、あなたのNG-モデル変数がinvalid dateデータ... チェックして設定されていた 'mydto .teilnahmebis'を指定された形式の現在の日付に変換します。 –

+0

save()操作後にデータベースに送信されるモデルには、値を設定しないでください。これは機能しません。場合によってはnullにする必要があります。カレンダーのみを初期化する必要があります。 –

+0

それはnullとそのように動作する必要があります。それは適切に働いています。あなたは何か間違ったことをしたかもしれない。あなたはあなたのコンソールをチェックしましたか? –

答えて

1

は、私は同じ問題あなたがあなたのモデルを割り当てることができ、あなたのデフォルト値を上書きし、null

+0

はい、実際は、日付は「無効な日付」です。私はコーディングによって解決しました: if($ scope.mydto.teilnahmebis!= null){ $ scope.mydto.teilnahmebis = moment($ scope.mydto.teilnahmebis、 'DD.MM.YYYY').toDate(); } –

+0

ヒント:ng-modelがnullでなく(有効な)日付である場合、配信されたString日付をjavascript Dateに変換する必要があります。そうでなければ、uib-datepicker-popupで他の問題が発生しました。 null String/dateをDateに変換すると、もちろん、無効な日付になります。したがって、if節が必要です。 –

-1

私はあなたが何か間違っていると思います。 plunkerコードを作成しました。 あなたはそれを通過することができます。 https://plnkr.co/edit/Yz2shW?p=preview