AngularJS:Wenn ich einen benutzerdefinierten Filter auf Daten anwende, erhalte ich eine leere Ausgabe

StackOverflow https://stackoverflow.com//questions/23027794

  •  21-12-2019
  •  | 
  •  

Frage

Ich versuche, einen Filter auf einige Daten anzuwenden, die ich aus Firebase abrufe.

Mein HTML sieht so aus:

<span ng-bind-html="game.rating | ratings"></span>

Notiz:Wenn ich das entferne "| ratings" Es funktioniert und gibt den Originaltext aus Firebase aus.

Aber sobald ich diesen Filter anwende, erhalte ich keine Ausgabe, es ist einfach leer.:( Ich bin total neu in Angular, JavaScript und Firebase.Daher ist jeder Rat sehr willkommen

'use strict';
MyApp.filter('ratings', function() {
    return function(rating) {
        switch(rating) {
            case 1:
                return "1star";
            case 2:
                return "2stars";
            case 3:
                return "3stars";
            case 4:
                return "4stars";
        }
    }
})

Hat das jemand von euch schon einmal gesehen?

War es hilfreich?

Lösung

Vielleicht ist die Ausgabe kein int?Analysieren Sie es.Und es ist eine gute Praxis, eine Standardeinstellung zu verwenden.

MyApp.filter('ratings', function() {
    return function(rating) {
        switch(parseInt(rating)) {
            case 1:
                return "1star";
            case 2:
                return "2stars";
            case 3:
                return "3stars";
            case 4:
                return "4stars";
            default: 
                return "Not set";
        }
    }
})
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top