• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[AngularJS] Doppelpunkt in Expression

bodo92

Aktives Mitglied
Hallo, ich habe folgende Frage.

Ich lass mir die vergangene Uhrzeit seit dem Aufruf der Seite anzeigen. (soll dann mal die vergangene Zeit seit Alarm darstellen)
Code:
function counterSince(date) {
    var diffSeconds = Math.floor((new Date() - date) / 1000);
    var hour = Math.floor(diffSeconds / 3600);
    var minute = Math.floor((diffSeconds % 3600) / 60);
    var second = Math.floor(diffSeconds % 60);

    if (hour < 10) { hour = '0' + hour; }
    if (minute < 10) { minute = '0' + minute; }
    if (second < 10) { second = '0' + second; }

    //return hour + ':' + minute + ':' + second; // Hätte ich gerne
    return {hour:hour, minute:minute, second:second};
}

function AppController($scope, socket) {
    socket.on('newEinsatz', function(data) {
        $scope.einsatzdaten.alarmcounter = counterSince($scope.einsatzdaten.alarmdate);
        setInterval(function() {
            $scope.$apply(
                $scope.einsatzdaten.alarmcounter = counterSince($scope.einsatzdaten.alarmdate)
            );
        }, 1000);
    });
}
HTML:
<span>{{einsatzdaten.alarmcounter.hour}}:{{einsatzdaten.alarmcounter.minute}}:{{einsatzdaten.alarmcounter.second}}</span>
oder eben
<span>{{einsatzdaten.alarmcounter}}</span>

Der Rückgabewert der Funktion counterSince() wird jede Sekunde in die $scope-Variable geschrieben, ist der Rückgabewert ein String (HH:mm:ss) mit einem DOPPELPUNKT meckert mir Angular die Ohren voll.

Habe es jetzt einfach so gelöst das ich ein Objekt mit den Feldern (hour, minute, second) zurückliefere, und dann die Doppelpunkte erst im HTML einbaue. (finde ich nicht so schön)

Jetzt würde mich trotzdem interessieren wie ich einen String mit Doppelpunkt in einer Expression abrufen kann?


Danke Vorab.
 
Zuletzt bearbeitet:
Mit Filtern. Die lassen sich im Controller oder Template setzen. Für Datetime gibt es das out-of-the-box. Steht sogar im Tutorial.
 
Zurück
Oben