2016-11-24 3 views
0

Ich habe den folgenden HTML-Eingang innen und ng-repeat:kann nicht geladen oder binden Zeichenfolge-Wert input [type = Zeit]

<div class="form-group"> 
    <label class="control-label small">Time</label> 
    <input type="time" class="form-control" ng-model="schedule.time" required /> 
</div> 

Nun ist dies innerhalb einer Bearbeitungsformular. Wenn die Seite geladen wird, werden die Daten vom Server abgerufen und in die entsprechenden Eingabefelder geladen. Alle anderen Eingabefelder scheinen mit Ausnahme der Uhrzeit angezeigt zu werden.

dachte ich, es könnte das Format des Wertes sein, so dass ich es von gerade geändert:

20:45:00

zu

{ 
    "date":"2016-11-24 20:45:00.000000","timezone_type":3,"timezone" 
    :"UTC" 
} 

Kohle aber, dass hat auch nicht funktioniert. Die Daten werden immer noch nicht im Eingabefeld angezeigt. Wenn ich es jedoch von Zeit zu Text ändere, wird es angezeigt.

+0

Wird in der Browserkonsole ein Fehler angezeigt? –

+0

Bitte teilen Sie Ihre JS-Quelle –

+0

Nein Ich bekomme keine Fehler in meiner Browser-Konsole und was meinst du mit JS-Quelle? – user3718908

Antwort

0

Ich denke, Sie ordnen String in ng-Modell, das Datum sein sollte. Vor dem Zuweisen zu Modell konvertieren Sie es zu Datum aus Zeichenfolge.

Versuchen Sie den folgenden Code. Es könnte dir helfen.

$scope.time = new Date(obj.date); 

Finden Sie die funktionierende plunker.

1

Wenn wir sagen, dass Sie diese Zeit angezeigt werden soll: 20:45:00 dann in Ihrem JS Code, den Sie so etwas wie dies tun soll, um Daten in ein input[time] Feld passieren:

$scope.myDate = new Date(); 
$scope.myDate.setHours(20,45,0) 

In Ihrem Fall kann vereinfacht durch mit Ihrem obj:

{ 
    "date":"2016-11-24 20:45:00.000000","timezone_type":3,"timezone" 
    :"UTC" 
} 

können Sie tun:

$scope.schedule.time = new Date(obj.date); 

Hier finden Sie weitere Informationen: https://docs.angularjs.org/api/ng/input/input%5Btime%5D