2017-01-24 3 views
0

Ich habe viele Ansichten, jeder zu js Controller mit angularjs verwandt. Ich habe eine Einkäufe Form, wo es:angularjs Filterdatum, Datumsformat Fehler

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

In den Controller js ich habe:

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

ich diese Methode in allen meinen Formen verwendet und arbeiten gut, aber in den Kauf bilden das Datum nicht so wie heute und in der Konsole die Seite gab mir:

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) 

Ich habe nicht verstanden, wo das Problem ist. Ich überprüfte den Injektor ($ filter), überprüfte das ng-Modell, wenn es doppelt ist, nichts. Irgendeine Idee?

+1

Wenn Sie den Fehler Link (https://docs.angularjs.org/error/ngModel/datefmt?p0=2017-01-24) überprüfen, gibt es tatsächlich den Grund für Ihren Fehler: 'Modell ist kein a Datumsobjekt'. Also '$ scope.currentDate' ist eine Zeichenfolge, kein Datum -> ein Fehler wird geworfen – Fissio

+0

Ja, ich habe den Link überprüft, ich habe eine Variable definiert, die das Datum enthält, wo ist das Problem? –

+2

Ihre Variable ist kein Datum, sondern eine Zeichenfolge. Tun Sie einfach '$ scope.currentDate = new Date()' – Fissio

Antwort

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

Dies ist eine Erklärung in der Fehler-URL zur Verfügung gestellt.

$scope.currentDate = new Date(); 

Dies sollte für Sie arbeiten. Sie haben die formatierte Datumszeichenfolge als Eingabe angegeben, was nicht erwartet wird.

+0

arbeiten Danke –