2015-09-09 2 views
4

Я пытаюсь использовать угловой-материал выбор даты и я получаю следующее сообщение об ошибке:Угловой Материал DatePicker date.toLocaleDateString не является функция

TypeError: date.toLocaleDateString is not a function 
at Object.defaultFormatDate [as formatDate] (angular-material.js:6860) 
at DatePickerCtrl.configureNgModel.ngModelCtrl.$render (angular-material.js:7184) 
at Object.<anonymous> (angular.js:25233) 
at m.a.$get.m.$digest (angular.js:15707) 
at m.a.$get.m.$apply (angular.js:15986) 
at g (angular.js:10511) 
at L (angular.js:10683) 
at XMLHttpRequest.A.onload (angular.js:10624) 

Я Haave взятого примера из кода пера здесь: https://material.angularjs.org/latest/#/demo/material.components.input

Соответствующий HTML код:

  <div layout="" layout-sm="column"> 
      <md-input-container style="width:70%"> 
       <label>Company (Disabled)</label> 
       <input ng-model="user.company" disabled=""> 
      </md-input-container> 

      <md-datepicker ng-model="date" md-placeholder="Enter date"></md-datepicker> 
     </div> 

Мой контроллер

$scope.date={}; 
$scope.$watch('date', function() { 
    console.log($scope.date); 
}); 

ответ

4

toLocaleDateString - это родной метод объекта даты, поэтому кажется, что ваш md-datepicker не привязан к дате. Без HTML и кода, который заполняет ваши данные, трудно сказать наверняка, но это наиболее вероятная причина.

+1

Вы были верны. Я не установил ng-модель сборщика дат в действительную дату javascript в моем контроллере и в области видимости. СПАСИБО!!! Я отредактирую свой вопрос для этого, чтобы иметь больше смысла для других. –

-1

я быть_наст лицо это ошибка, потому что я пытаюсь присвоить значение строки формата для модели, которая связывание с мд-DatePicker, который проведет яваскрипт типа даты как этого

$scope.eventdate = $filter('date')($scope.eventdate, 'yyyy-MM-dd'); 

раствор объявить новым модель для мда-DatePicker и получить его значение, как этот

на Js

$scope.eventdate = $filter('date')($scope.mddate, 'yyyy-MM-dd'); 

на HTML

<md-datepicker ng-model="mddate" md-placeholder="Enter date" required></md-datepicker> 

надеюсь, что это может помочь вам

-1

У меня была точно такая же проблема, но ответы выше не помогло.

Инициализация datepicker с новой Date() работает, но при попытке инициализировать значение, возвращаемое с сервера, я получил ошибку выше - несмотря на то, что они, похоже, находятся в одном формате.

В конце концов мне пришлось явно создать объект Date, а затем установить его значение с помощью Parse.

 var date = ctrl.data.fromServer; 
     ctrl.data.fromServer= new Date(); 
     if (date != undefined) 
     { 
      ctrl.data.fromServer.setTime(Date.parse(date)); 
     } 
+0

Да, ваш сервер возвращает текст. Вы должны явно преобразовать текст в дату. –

0

Вполне возможно, ваш date объект не относится к типу Date, убедитесь, что он этого типа только, не string или что-то еще.

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

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