2012-11-07 17 views
6

Jestem bardzo nowy w angularJS w JS w ogólności i jestem nieco zdezorientowany, jeśli chodzi o używanie dokumentu $. Zgodnie z tym, co zrozumiałem, dokument $ ujawnia niektóre funkcje JQuery. Tak więc, kiedy chcę usunąć element pasujący do selektora zrobić to:

$document.remove('.someClassSelector'); 

i element powinien zostać usunięty z drzewa DOM, prawda? Jeśli nie, to w jaki sposób można manipulować elementami DOM i ich css w kanciastym.

Odpowiedz

4

AngularJS osadza lite wersję Jquery (jqLite).

Jeśli chcesz użyć jqLite tylko (bez osadzania jQuery), można wykonać następujące czynności, aby usunąć element:

angular.element(yourElement).remove() 

$document jest jqLite skrót do window.document

Patrz: docs.angularjs.org/api/angular.element

+0

To jest angularJS prawda? – Adelin

+0

Ach, przepraszam, źle zrozumiałem pytanie. AngularJS osadza wersję Jquery (jquery lite) w wersji Jeśli chcesz używać tylko jquery lite (bez osadzania jquery), możesz zrobić: kątowy.element (twójElement) .remove() $ dokument jest skrótem jquery lite do window.document Zobacz: http://docs.angularjs.org/api/angular.element –

+0

tak, dokładnie o to pytałem. Zaktualizuj swoją odpowiedź, aby ją zaakceptować. – Adelin

9

Bardziej powszechnym "kątowym sposobem" ukrywania/pokazywania elementów DOM jest użycie dyrektyw ngHide i/lub ngShow - "zadeklarowanie" ich w kodzie HTML (stąd te stwierdzenie Overview strona:

kątowa jest zbudowany wokół przekonania, że ​​kod deklaratywna jest lepiej niż konieczne, jeśli chodzi o budowanie UIS i programowe okablowanie komponentów razem

Podobnie, aby dodać/usunąć klas CSS, użyj dyrektywy ngClass w sposób deklaratywny. Zmiany w modelach (np. Właściwości $ scope) powinny prowadzić do ukrywania/pokazywania i dodawania/usuwania klas CSS.

Jeśli potrzebujesz czegoś bardziej skomplikowanego, przestaw manipulację DOM na niestandardową directives, zwykle w funkcji łączenia.

W świecie jQuery myślimy o zdarzeniach wyzwalających kod manipulacji DOM (np. Wywołanie remove() na jakimś elemencie). W świecie AngularJS chcemy myśleć o zdarzeniach wyzwalających zmiany modelu, które następnie automatycznie wyzwalają zmiany interfejsu użytkownika, w oparciu o nasz deklaratywny HTML (np. Ng-click ustawia właściwość $ scope, która jest powiązana z ng-show na elemencie). Wciąż dostosowuję swoje myślenie.

W przypadku większości aplikacji AngularJS nie trzeba używać dokumentu $.

Powiązane problemy