Ich habe den unten Filter (warum ich von StackOverflow), die auf einer Seite funktioniert, aber löst den unten Fehler auf einem anderen (mit dem gleichen Objekt).Angular Filter werfen "Kann nicht interpolieren" Fehler, obwohl der Filter funktioniert
app.filter('dateFormat', function dateFormat($filter){
return function(text){
var tempdate= new Date(text.replace(/-/g,"/"));
return $filter('date')(tempdate, "dd-MM-yyyy");
}
});
Can't interpolate: {{ job.job_date | dateFormat}}
TypeError: text is undefinedO/<@http://localhost/ef-serial-numbers/public/assets/global/plugins/angularjs/angular.min.js:6:[email protected]://localhost/ef-serial-numbers/public/assets/global/plugins/angularjs
Wenn ich job.job_date
zu einem fest codierten Datum zu ändern, verschwindet der Fehler. Die Sache ist, der Filter funktioniert tatsächlich korrekt, unabhängig vom Fehler.
Vielleicht prüfen, ob 'text' vor dem Aufruf von' .replace' nicht definiert ist? – MMhunter
Ich glaube, der Kommentar von @MMHunter ist korrekt als die Lösung; Der Grund für dieses Verhalten ist (wahrscheinlich nur raten), dass das 'job.job_date'' undefined' startet, aber dann schnell einen Wert bekommt; der erste Digest löst die Ausnahme aus, der zweite zeigt den korrekten Wert an und der Filter "funktioniert" scheinbar. –
@Lock mit Vergnügen xD. – MMhunter