2017-01-24 2 views
0

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

<input type="date" ng-model="currentDate"> 

В JS контроллера у меня есть:

$scope.currentDate=$filter('date') (new Date(), 'yyyy-MM-dd'); 

я использовал этот метод во всех моих формах и работает нормально, но при покупке образует дата не установлено, как сегодня, так и в консоли, на странице страницы:

angular.js:12450Error: [ngModel:datefmt] http://errors.angularjs.org/1.4.6/ngModel/datefmt?p0=2017-01-24 
    at angular.js:38 
    at Array.<anonymous> (angular.js:21769) 
    at Object.<anonymous> (angular.js:25349) 
    at n.$digest (angular.js:15751) 
    at n.$apply (angular.js:16030) 
    at angular.js:1660 
    at Object.e [as invoke] (angular.js:4476) 
    at d (angular.js:1658) 
    at yc (angular.js:1678) 
    at Xd (angular.js:1572) 

Я не поймал, где проблема. Я проверил инжектор ($ filter), проверил ng-модель, если это дубликат, ничего. Есть идеи?

+1

Если вы отметите ссылку на ошибку (https://docs.angularjs.org/error/ngModel/datefmt?p0=2017-01-24), она на самом деле дает вам причину вашей ошибки: 'Модель не является дата объекта ". Таким образом, '$ scope.currentDate' является строкой, а не датой -> возникает ошибка – Fissio

+0

yes Я проверил ссылку, я определил переменную, содержащую дату, где проблема? –

+2

Ваша переменная не является датой, это строка. Просто сделайте '$ scope.currentDate = new Date()' – Fissio

ответ

2

All date-related inputs like require the model to be a Date object. If the model is something else, this error will be thrown

Это объяснение содержится в сообщении об ошибке.

$scope.currentDate = new Date(); 

Это должно сработать для вас. Вы вводили форматированную строку даты в качестве входных данных, чего не ожидалось.

+0

работаю спасибо –

Смежные вопросы