Ich habe eine benutzerdefinierte Direktive myDirective
, die eine Aufgabe auf einem Element ausführt.AngularJS Direktive in ng-wenn nicht
Ich habe diese Anweisung in einem ng-if
Block
<div ng-if="condition">
<div my-directive></div>
</div>
So etwas wie diese Geige: http://jsfiddle.net/hGnvv/ nur die ng-if
Bedingung true schaltet sich nach meinen $http
Anfragen geladen werden.
Die Direktive ist wahrscheinlich während der Laufzeit kompiliert, aber nie verknüpft, so dass der Code nie ausgeführt wird. Wenn ich die ng-if
durch ng-show
ersetze, funktioniert die Richtlinie gut.
Irgendwelche Lösungen?
Bearbeiten: Ich kann ng-show
nicht verwenden, weil ich 130 Anweisungen innerhalb des Formulars haben. 20 Direktiven laufen sowieso, und die anderen laufen nach meinem Objekttyp.
ng-if="type == 2"
dann laden andere Elemente usw.ng-if="type == 1"
dann diese Elemente laden Wenn ich dieng-if
-ng-show
ändern, nimmt die Form 8s statt 1s zu laden.
verwenden sollten Sie haben bereits eine Lösung.Ersetzen Sie ng-if mit ng-show – nikhil
Ich kann das nicht tun, ich habe 130 Anweisungen auf einem einzigen Formular. Wenn ich den ng-if mit ng-show ersetze, wird der ganze Code, der ausgeführt werden muss, viel langsamer (8s statt 1s). –
Verwenden Sie ng-show wenn möglich. Ng-if entfernt das Element aus dem DOM, so dass es keine Möglichkeit gibt, es zu kompilieren. –