2016-04-17 3 views
0

Also habe ich beschlossen, einen einfachen Moment Filter für die Formatierung meiner Zeiten, aber ich habe ein Problem, wo die erste Eingabe aus einer ng-repeat Liste gehen wird durch es richtig, aber alle anderen kehren invaild zurück, aber wenn ich manuell dieselbe Zeile durch die Konsole mit der gleichen Eingabe eintrage, bekomme ich eine korrekte Ausgabe.
Hier ist der Eingangmoment.js Rückkehr Invaild Datum für jeden Eintrag mit Ausnahme der ersten, wenn auf einem eckigen 1,5 Filter verwendet

App.filter('momentFilter', function() { 
    return function (dateString, format, isUtc) { 
     console.log(dateString); 
     if (isUtc) { 
      var result = moment.utc(dateString).local().format(format); 
      console.log(result); 
      return result; 
     } 
     var result = moment(dateString).format(format); 
     console.log(result); 
     return result ; 
    }; 
}); 

mein ng-Wiederholungsschleife

<div ng-repeat="rank in rankings"> 
    <div flex="15"> 
     <label>Start Time: </label> {{rank.startTime | momentFilter:'D-MM':true}} 
    </div> 
</div> 

und ein Bild von den Daten/mit meiner manuellen Eingabe des zweiten Punktes am Boden zur Folge zeigt, dass es richtig ist

enter image description here

Antwort

1

Wenn Sie dateString wie 1460028524737 als Zeichenfolge senden, dann sh würde es zuerst konvertieren string zu integer. dann wird es gut funktionieren.

var dateValue = parseInt(dateString); 
var result = moment.utc(dateValue).local().format(format); 

und Sie sollten immer in Ihrer Funktion verwenden, sonst sonst moment(dateString).format(format) ausführen und dieses Ergebnis zu erhalten, oder vor if (isUtc) Zustand verwenden

return function (dateString, format, isUtc) { 
    console.log(dateString); 
    var dateValue = parseInt(dateString); 
    if (isUtc) { 
     var result = moment.utc(dateValue).local().format(format); 
     console.log(result); 
     return result; 
    } else { 
     var result = moment(dateValue).format(format); 
     console.log(result); 
     return result ; 
    } 
}; 
+0

Sorry, kleinere Tippfehler, wenn es vor versuchen, yep scheint es zu funktionieren – Toxicable