Ich habe eine einfache AngularJS-Seite mit verschiedenen Abschnitten, die ich & amp; ausblenden, wenn auf Links geklickt wird. Einer dieser Bereiche hat eine wiederholte Liste, die gefiltert werden kann.
Wenn der Abschnitt, der die Liste enthält, mit ng-show
oder ng-hide
angezeigt / versteckt wird, verhält er sich normal. Wenn ng-if
verwendet wird, kann die Liste nicht gefiltert werden.
Demos
ng-if
ng-show
Beispiel-HTML
%Vor%Sample Angular
%Vor%Ich habe keinen Master-Abschluss zum Thema Prototypische Vererbung, aber ich werde versuchen, es in Kürze zu erklären (es gibt eine Menge Ressourcen zu diesem Thema);
Number
String
Boolean
null
undefined
Symbol
(ab ES6) werden als Primitive (MDN) angesehen.
Jetzt - wenn Sie ein primitives Element von Ihrem übergeordneten Bereich erben, passiert tatsächlich, dass der untergeordnete Bereich den angegebenen primitiven Wert "spiegelt" oder "schattiert". Als solches können Sie es als eine Kopie der oben genannten vorstellen.
Das ist grob die Natur von Primitiven im Kontext der Prototypischen Vererbung.
Dies kann deutlich in einer modifizierten Version deiner kaputten Geige beobachtet werden.
Versuchen Sie, mit den beiden Eingängen zu spielen, und Sie sehen, dass eine Verbindung der beiden Werte besteht, wenn Sie nur die äußere Eingabe berühren (d. h. der untergeordnete Wert "überschattet" den übergeordneten Wert). Aber sobald Sie den inneren Eingang berühren, trennen sich die Werte voneinander.
Die empfohlene Möglichkeit, dies zu umgehen, besteht darin, eine Referenz für eine Eigenschaft in Ihrem Modell zu verwenden (ich sage Modell, aber eigentlich ist es nur ein JS-Objekt) weiter oben definiert die Prototyp-Kette;
%Vor% Nun sollten Sie mit ngIf
, ngSwitch
, ngRepeat
weitermachen, um einige der eckigen Anweisungen zu nennen, die einen neuen Bereich erstellen.
Tags und Links angularjs angular-filters