Mam niestandardową dyrektywę myDirective
, która wykonuje zadanie na elemencie.AngularJS dyrektywa wewnątrz ng-if nie będzie działać
mam tę dyrektywę w bloku ng-if
<div ng-if="condition">
<div my-directive></div>
</div>
coś takiego skrzypce: http://jsfiddle.net/hGnvv/ tylko warunek ng-if
zamienia się w prawdziwe po moim $http
żądania są ładowane.
Dyrektywa jest prawdopodobnie kompilowana podczas uruchamiania, ale nigdy nie jest połączona, więc kod nigdy nie działa. Jeśli zastąpię ng-if
przez ng-show
, dyrektywa działa poprawnie.
Jakieś rozwiązania?
Edytuj: Nie mogę użyć ng-show
, ponieważ w formularzu mam 130 dyrektyw. 20 dyrektyw działa, a drugi działa zgodnie z moim typem obiektu.
ng-if="type == 1"
następnie załadować te elementyng-if="type == 2"
następnie załadować inne elementy itd
Jeśli zmienię ng-if
do ng-show
, forma trwa 8s załadować zamiast 1s.
Masz już rozwiązanie.Zamień ng-if z ng-show – nikhil
Nie mogę tego zrobić, mam 130 dyrektyw w jednym formularzu. Jeśli zamieniam ng-if na ng-show, cały ten kod, który musi działać, znacznie wolniej (8 s zamiast ~ 1s). –
Użyj ng-show, jeśli to możliwe. Ng-if usuwa element z DOM, więc nie ma sposobu, aby go skompilować. –