2017-09-22 1 views
0

Première fois en utilisant moment.js et j'ai du mal à mettre en œuvre une horloge pour afficher l'heure en CET et PST. Mon code est le suivant:Horloge ne se met pas à jour toutes les secondes en utilisant moment.js

function cetClock() { 
    var cet = moment.tz("Europe/London"); 
    var today = new Date(cet); 
    var h = today.getHours(); 
    var m = today.getMinutes(); 
    var s = today.getSeconds(); 
    m = checkCetTime(m); 
    s = checkCetTime(s); 
    $rootScope.cetTime = h + ":" + m + ":" + s; 
    var t = setTimeout(cetClock, 300); 
} 
function checkCetTime(i) { 
    if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10 
    return i; 
} 

cetClock() 

<div class="col-md-6"> 
    <p>CET: {{$root.cetTime}}</p> 
</div> 

La question que j'ai est que le temps de la vue est seulement mis à jour toutes les 4-5 secondes. Si je consigne le h, m, s dans la fonction, il s'affiche toutes les 500 millisecondes à la mise à jour.

Question

Pourquoi l'horloge dans le viiew parvient pas à mettre à jour chaque seconde?

Répondre

1

Je suggère d'utiliser $timeout au lieu de setTimeout qui déclenchera automatiquement un cycle de digestion.

+0

Ahhhhh. Frigging simple. Je vous remercie. Je vais marquer votre réponse correcte quand je peux –

+0

Mon plaisir, merci. –