Twoja dyrektywa najprawdopodobniej określa zakres izolacji: scope: { ... }
. W takim przypadku wszystkie dyrektywy zdefiniowane dla tego elementu będą używać zakresu izolatu. Dlatego styl ng będzie szukał właściwości myStyle
w zakresie izolatu, który nie istnieje.
Przede szare linie pokazują $ rodziców, przerywane linie pokazują prototypal dziedziczenia. Zakres 004 to twój zakres izolatu. Zakres 003 to zakres kontrolera. ng-style będzie szukał myStyle
w zakresie 004, a nie odnajdzie go, a następnie podąży za linią przerywaną i poszukać go w Zasięgu, a także tam go nie znajdzie.
Zwykle nie chcesz używać dyrektyw, które tworzą zakres izolowania razem z innymi dyrektywami dotyczącymi tego samego elementu. Masz kilka opcji:
- użyj
scope: true
zamiast zakresu izolatu w Twojej dyrektywie. Potem, gdy ng stylu szuka myStyle
w zakresie 004 i nie znajdzie, to wówczas postępować zgodnie z linią przerywaną (w rysunku poniżej) i znaleźć go w zakresie dominującej:
- użytku
ng-style="$parent.myStyle"
w HTML do uzyskać dostęp do właściwości myStyle
w zakresie nadrzędnym (tj. postępować zgodnie z szarą linią na pierwszym obrazie).
wydaje plik [tutaj] (http://jsfiddle.net/arunpjohny/Z56yH/2/) –