2015-06-26 5 views
0

Я использую bootstrap datepicker. При отправке значений с datepicker на сервер мой формат равен mm/dd/yyyy. Например: 06/24/2015Bootstrap datepicker split issue

Когда я возвращаю значения с сервера («06/24/2015»), я пытаясь заполнить ввод datepicker с 24.06.2012.

Для этого я пытаюсь сделать что-то вроде этого:

$scope.startDate = ($scope.startDate == null) ? null : new Date($scope.startDate); 

Теперь $ scope.startDate Ср 24 июня 2015 00:00:00 GMT-0500 (Central Standard Time)

Тогда я его форматирования для отображения даты в входе Datepicker так:

$scope.startDate = $filter('date')($scope.startDate,'MM/dd/yyyy'); 

Теперь значение 06/24/2015

Все работает нормально, но я вижу, ошибка сценария говорят:

TypeError: Cannot read property 'split' of undefined 
at createParser (ui-bootstrap-tpls-0.11.0.min.js:8) 
    at parse (ui-bootstrap-tpls-0.11.0.min.js:8) 
    at m (ui-bootstrap-tpls-0.11.0.min.js:8) 
    at link.k.$render (ui-bootstrap-tpls-0.11.0.min.js:8) 
    at Object.<anonymous> (angular.js:23295) 
    at l.$digest (angular.js:14235) 
    at l.$apply (angular.js:14506) 
    at l (angular.js:9659) 
    at S (angular.js:9849) 
    at XMLHttpRequest.D.onload (angular.js:9790) 

Я искал много вопросов, и большинство из них говорят, что это ошибка в DatePicker и доступен на GitHub мастера и еще не выпущен. Я хотел убедиться, что я правильно разбираю даты? Есть ли лучший способ справиться с этой проблемой и избежать получения ошибки сценария?

ответ

0

Обычно серверные данные занимают некоторое время после инициализации вашего приложения. В то же время datepicker пытается обработать нуль в ng-модели.

Хотя вы можете наверняка дождаться исправления от начальной загрузки, но я думаю, вы можете рассмотреть возможность инициализации даты до того, как данные сервера будут доступны, например, сегодняшняя дата или любая подходящая дата.

$scope.startDate = ($scope.startDate == null) ? new Date() : new Date($scope.startDate);

Edit: Я написал простой DatePicker в jsbin, но не могу показаться, чтобы получить ошибку в консоли. Может быть, вы можете обновить его и воспроизвести?

+0

Я все еще получаю ту же ошибку. Без изменений. – Mustang

+0

Как насчет '$ scope.startDate = new Date()' в начале контроллера? – Icycool

+0

Я пробовал, но по-прежнему ту же ошибку. Сожалею. – Mustang