2016-04-29 14 views
1

Я использую UI Bootstrap 1.3.2, Bootstrap 3.3.6 и Angularjs 1.5.5, но у меня проблема с uib-datepicker-popup. Если значение соответствующего входного поля является нулевым/не установлено, календарь показывает неопределенное поле даты (NULL, NaN):uib-datepicker-popup calendar с нулем/NaN, если исходный исходный нуль

enter image description here

Код входного поля:

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

Опция initDate игнорируется - код от контроллера:

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

Всплывающее окно работает, если поле ввода уже имеет значение. Но обычно это не так. Любая идея, как решить эту проблему? Спасибо за ответ.

+0

вы можете назначить модель 'mydto .teilnahmebis' до текущей даты с указанным вами форматом. –

+0

Это не работает, потому что модель, которая передается в базу данных после операции сохранения(), никогда не должна иметь значения. Иногда он должен быть нулевым. Только календарь должен быть инициализирован. –

+0

Да, он должен быть нулевым, и он работает так. Он работает правильно. Возможно, вы сделали что-то не так. Вы проверили консоль? –

ответ

1

У меня была такая же проблема, ваши нг-модели переменных настройки с invalid date данных ... проверки, если вы переписав значение по умолчанию и установить его в качестве null

+0

Да, это правда, дата - «неверная дата». Я решил путем кодирования: if ($ scope.mydto.teilnahmebis! = Null) { $ scope.mydto.teilnahmebis = moment ($ scope.mydto.teilnahmebis, 'DD.MM.YYYY') .toDate(); } –

+0

Подсказка: если ng-модель не является нулевой и является (действительной) датой, я должен преобразовать поставленную дату String в дату javascript, иначе я столкнулся с другими проблемами с uib-datepicker-popup. Если я преобразую null String/date в Date, я получаю, конечно, недопустимую дату. Поэтому мне нужно if-предложение. –

-1

Я думаю, вы, возможно, сделали что-то неправильно. Я создал для вас код plunker, и он работает так, как должно быть. Вы можете пройти через это. https://plnkr.co/edit/Yz2shW?p=preview