2016-07-09 1 views
0

Ich muss Datumdaten im Format dd/MM/yyyy erfassen und es als Date-Objekt an die API senden. Ich verwende die folgende Anweisung:Angular: Wie man eine Datumszeichenkette in "TT/MM/JJJJ" zu einem Datumobjekt umwandelt

angular.module('tmyapp').directive('formattedDate', function (dateFilter) { 
    return { 
     require: 'ngModel', 
     scope: { 
      format: "=" 
     }, 
     link: function (scope, element, attrs, ngModelController) { 
      ngModelController.$parsers.push(function (data) { 
       //convert data from view format to model format 
       return dateFilter(data, scope.format); //converted 
      }); 

      ngModelController.$formatters.push(function (data) { 
       //convert data from model format to view format 
       return dateFilter(data, scope.format); //converted 
      }); 
     } 
    } 
}); 
//use <input type="text" formatted-date format="'dd/MM/yyyy'" /> 

Es wird zeigen, das Date-Objekt dd/MM/yyyy arbeiten, aber nicht die Daten in dd/MM/yyyy Format Date-Objekt zu konvertieren.

Kann jemand helfen?

+0

Parser sollte das Datum nicht analysieren ein Date-Objekt zurück? –

+0

Richtig, aber einfach die Daten in der Zeichenfolge TT/MM/JJJJ-Format an die Datumsmethode übergeben funktioniert nicht. Ich suche nach einer Möglichkeit, dies zu tun. – Kangkan

Antwort

1

Sie haben bisher String Parser wie folgt zu analysieren:

angular.module('tmyapp').directive('formattedDate', function (dateFilter) { 
    return { 
     require: 'ngModel', 
     scope: { 
      format: "=" 
     }, 
     link: function (scope, element, attrs, ngModelController) { 
      ngModelController.$parsers.push(function (data) { 
       //convert data from view format to model format 
       dateArray = data.split("/"); 
       var date = new Date(dateArray[2] + "-" + dateArray[1] + "-" + dateArray[0]) 
       return date; //converted 
      }); 

      ngModelController.$formatters.push(function (data) { 
       //convert data from model format to view format 
       return dateFilter(data, scope.format); //converted 
      }); 
     } 
    } 
}); 
+0

So wird die Richtlinie nur für dieses bestimmte Format funktionieren. Und wenn ich andere Formate verwenden muss, muss ich möglicherweise zusätzliche Parser hinzufügen. Ist das richtig? – Kangkan

+1

Sie können abhängig vom Format bedingte Bedingungen festlegen. –

Verwandte Themen