2017-03-13 4 views
0

Gibt es eine Möglichkeit für Angular, die Zeichenfolge von den Datum/Uhrzeit-Eingaben zu übernehmen? Derzeit habe ich diese Eingabe, zum Beispiel:AngularJS - Parsing ng-Modell nach Datum/Zeit

<input class="admin-input" type="time" ng-model="newEvent.endHour"/> 

Ich mag würde den Wert im Modell als HH zeigen: mm aber, wenn ich seinen Wert zu drucken, es zeigt das vollständige Datum sowie die Vollzeit. Gibt es sowieso nur die in der Eingabe angegebene Zeichenkette (HH: mm Format) in das ng-Modell?

Vielen Dank im Voraus.

+0

Mögliches Duplikat von [Wie der Wert der Eingabe \ [Zeit \] zu formatieren, wenn an Datum gebunden() -Objekt] (http://stackoverflow.com/questions/36976716/how-to-format -the-value-of-inputtime-wann-gebunden-zu-Datum-Objekt) –

+0

Versucht, dass und immer noch nicht funktioniert. Scheint, dass ich es im Controller analysieren muss, da es auch 1 Tag und 1 Stunde weniger als die in der Eingabe gezeigt anzeigt – Xabi

Antwort

1

Sie können die Winkel date Filter verwenden,

<input class="admin-input" type="time" ng-model="newEvent.endHour | date:'HH:mm'"/> 

EDIT Wenn Sie es auf ein Modell binden wollen, dann eine Uhr hinzufügen und in der Steuerung filtern,

DEMO

var app = angular.module('App', []); 
 
app.controller('myctrl', function($scope,$filter) { 
 
    $scope.endHour = new Date(); 
 
    $scope.$watch('endHour', function(newValue) { 
 
    $scope.endHour = $filter('date')(newValue, 'HH:mm'); 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html ng-app="App"> 
 

 
<head> 
 
    <script data-require="[email protected]*" data-semver="1.2.14" src="//code.angularjs.org/1.2.14/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
</head> 
 

 
<div ng-app="App" ng-controller="myctrl"> 
 
    <input type="datetime" ng-model="endHour" class="form-control" /> 
 
</div> 
 
</body> 
 

 
</html>

+0

Es scheint, dass Sie dem ng-Modell keinen Filter zuweisen können, es funktioniert nicht – Xabi

+0

Ich würde vorschlagen, dass Sie es auf dem Controller tun, es sei denn, Sie zeigen es in Ausdruck – Sajeetharan

+0

überprüfen Sie die aktualisierte Demo – Sajeetharan