2012-06-21 10 views
9

Mam stronę AngularJS z kilkoma wejściami formularza.AngularJS, w jaki sposób ustawić UI w zależności od tego, które pole ma fokus?

Gdy niektóre z wejść mają ostrość, chcę zmienić inne, dowolne aspekty strony.

Na przykład, gdy użytkownik znajduje się w wejściu do „Kod towaru”, chcę, aby wyświetlić listę popularnych kodów giełdowych. Gdy są w polu "qty", chcę pokazać ilości w magazynie i czasy realizacji.

Czy istnieje zmienna, która zawiera wejście „aktualny” (ten, który ma skupić), albo muszę powrócić do jQuery onfocus. (Wydaje się teraz trochę prymitywny.)

Odpowiedz

10

Co powiesz na dyrektywę? Można ustawić zmienną gdy użytkownik opuści/wchodzi na wejście i wykryć, że: http://jsfiddle.net/TZnj2/

Pamiętaj, aby zapoznać się z instrukcją dyrektywy, jeśli jesteś mylić, co się dzieje: http://docs.angularjs.org/guide/directive

Również używam zakres. $ zastosować w tej dyrektywie, oto wyjaśnienie, co to robi: http://docs.angularjs.org/api/ng.$rootScope.Scope#$apply

+0

Tyle Kątowymi JS wydaje elegancki, to jednak wydaje się dużo kodu, aby osiągnąć ten cel - oni zapomnieć dyrektyw ngFocus i ngBlur? –

+2

Więc chcesz elegancki Spróbuj tego, a następnie :-D: http://jsfiddle.net/andytjoslin/3Aevb/1/. A Angular po prostu nie chciał pisać dyrektyw dla wszystkiego, jak sądzę. ng-click i ng-dblclick itd. to tylko dyrektywy, yunno. Nic specjalnego. –

+0

Po prostu moja opinia, ale nadal myślę, że jQuery czyta lepiej w tym konkretnym przypadku rozmycia/fokusu (ja nad inżynierem tego przy użyciu obiektu, mógłbym uciec z mniejszym kodem, gdyby był inlined) http://jsfiddle.net/gregk/r2336/ –

Powiązane problemy