Zuweisung eines Filters zu einer Objektvariablen in Angular JS

8

Ich habe eine ng-repeat mit einem Filter wie folgt:

%Vor%

Ich möchte, dass der Kunde es filtern kann, also habe ich den Filter einer Variablen wie folgt zugewiesen:

%Vor%

Code #1 funktioniert, aber Code #2 ist nicht und ich bin mir nicht sicher warum.

    
Jordash 18.02.2016, 03:24
quelle

4 Antworten

3

Haben Sie auch versucht, ng-init

zu umbrechen? %Vor%

Wie ich jedoch bereits in meinem Kommentar erwähnt habe - angularjs gibt an, dass ngInit verwendet wird in fast allen Fällen eine schlechte Praxis. Das sollte also, wenn möglich, keine Lösung für Ihr Problem sein.

Und Ihr # 2-Code funktioniert tatsächlich, überprüfen Sie bitte dieses Plunk - Ссылка

%Vor%     
shershen 20.02.2016 19:58
quelle
2

Die Verwendung von ng-init ist keine gute Methode (Wie Sie in eckigen Dokumenten sehen können, wurde der Warnhinweis in Rot hinzugefügt). Wie Sie wissen, wird es nur beim ersten Rendering ausgewertet (da ng-init seinen Ausdruck in preLink phase auswertet).

Wenn Sie sich Ihren Code anschauen, scheint reportFilter variable ein gemeinsames Objekt für alle contests zu sein. Korrigiere mich, wenn ich falsch liege?

Ich würde diesen Wert innerhalb eines Controllers nur einmal wie unten hinzufügen.

%Vor%

Und direkt in der Ansicht selbst verwenden.

%Vor%     
Pankaj Parkar 20.02.2016 20:12
quelle
1

Besser ist es, das Ergebnis der Filterung auf die JSON-Daten in einer Variablen zu speichern, bevor ng-repeat Elemente im jsonArray wie folgt liest.

%Vor%
    
Shalabh Raizada 24.02.2016 09:47
quelle
1

Code 2 funktioniert nicht, weil Sie einen benutzerdefinierten Filter erstellen müssen, während Sie nur div nicht erstellen Filter

initialisieren

Code 1 funktioniert, weil Sie die richtige Syntax für den Standardfilter verwenden, der genau wie Sie mit jedem Objekt verglichen werden kann

    
Hassan Tariq 25.02.2016 12:07
quelle