Haben Sie auch versucht, ng-init
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% 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%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.
Code 2 funktioniert nicht, weil Sie einen benutzerdefinierten Filter erstellen müssen, während Sie nur div nicht erstellen Filter
initialisierenCode 1 funktioniert, weil Sie die richtige Syntax für den Standardfilter verwenden, der genau wie Sie mit jedem Objekt verglichen werden kann
Tags und Links angularjs angularjs-ng-repeat angularjs-filter ng-repeat