Niedawno przejrzałem kod aplikacji internetowej zbudowanej za pomocą angular i odkryłem, że został napisany z ng-app="myModule"
dyrektywą umieszczoną w <body>
tagu. Kiedy uczyłem się angular, widziałem go tylko na <html>
tagu, zgodnie z zaleceniami dokumentacji kątowej tutaj , tutaj oraz w ich samouczku .
Mam zbadać to trochę na własną rękę i znalazłem tak pytania, szczególnie ten jeden i podobnie ten jeden , które omawiają ładowanie wielu modułów na stronie. Jednak ta technika różni się od mojego przypadku, ponieważ polega na umieszczeniu ng-app na elementach w ciele i użyciu ręcznego ładowania początkowego, aby uruchomić dwie aplikacje kątowe w tym samym czasie.
O ile mi wiadomo, nie ma żadnej różnicy między czasie wykonywania aplikacji z ng-app
na <html>
lub <body>
. Jak rozumiem, ng-app
oznacza korzeń kątowym aplikacji, więc umieszczenie go na <body>
obniżyłby <head>
z zakresu kątowego, ale nie mogę myśleć o jakiejkolwiek poważnej sposób ten wpłynąłby rzeczy. Więc moje pytanie brzmi: jaka jest różnica techniczna między umieszczeniem ng-app
na jednym z tych tagów zamiast na drugim?
Byłem w zespole pracującym nad starszą aplikacją i stwierdziłem, że najlepiej jest użyć tagu ng-app w elemencie div, który jest używany jako opakowanie do oddzielenia nowego kodu od starszego kodu.
Odkryliśmy to podczas pracy nad aplikacją, która w dużym stopniu opierała się na jqGrid i Dojo.
Kiedy dodaliśmy ng-app do tagu head, wysadziliśmy w powietrze stronę, ale kiedy użyliśmy wrappera, mogliśmy używać Angulara bez żadnych problemów.
źródło
AngularJS załaduje pierwszą znalezioną aplikację ng! Otóż to. Jeśli masz więcej niż jedną aplikację ng, przetworzy ona tylko pierwszą. Jeśli chcesz załadować dowolny inny element, użyj angular.bootstrap ()
Wartością atrybutu ng-app jest moduł, który został utworzony przy użyciu:
Moduł definiuje, w jaki sposób angular będzie ładowany, ponieważ nie mamy metody main () w przeciwieństwie do innych języków programowania. Jeśli wartość ng-app jest pusta, domyślnie używa „ng”, modułu domyślnego.
Mówiono, że jest nieco szybszy, ponieważ angular przetworzy wszystkie elementy wewnątrz elementu, w którym znajdowała się ng-app. Ale wątpię nieco, ponieważ różnica będzie ledwo zauważalna, chyba że masz bardzo, bardzo obszerny DOM.
Jeśli potrzebujesz przykładów tutaj: http://noypi-linux.blogspot.com/2014/07/angularjs-tutorials-understanding.html
źródło