Próbuję dodać dwie aplikacje / moduły kątowe do jednej strony. Na poniższych skrzypcach widać, że zawsze tylko pierwszy moduł, do którego odwołuje się kod html, będzie działał poprawnie, podczas gdy drugi nie jest rozpoznawany przez angular.
Na tych skrzypcach możemy wykonać tylko doSearch2
metodę, podczas gdy na tych skrzypcach tylko doSearch
metoda działa poprawnie.
Szukam sposobu, jak poprawnie umieścić dwa kątowe moduły na jednej stronie.
źródło
ng-app="project"
i mówi, że „pozwala to mieć moduły działające w różnych częściach strony”, ale dokument ngApp stwierdza, że „tylko jedna dyrektywa może być używana na dokument HTML”.ng-app
(bo to nie zadziała).ng-app
może być użyty tylko raz na dokument HTML. To naprawdę jest tylko skrót, jeśli masz tylko jedną aplikację na stronie, co jest normalnym przypadkiem.Stworzyłem alternatywną dyrektywę, która nie ma
ngApp
ograniczeń. To się nazywangModule
. Tak wyglądałby kod, gdy go używasz:Możesz pobrać kod źródłowy pod adresem:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
Zasadniczo jest to ten sam kod, który jest używany wewnętrznie przez AngularJS bez ograniczeń.
źródło
Dlaczego chcesz używać wielu [ng-app]? Ponieważ Angular jest wznawiany przy użyciu modułów, możesz użyć aplikacji, która używa wielu zależności.
JavaScript:
HTML:
EDYTOWAĆ
Pamiętaj, że jeśli chcesz używać kontrolera wewnątrz kontrolera, musisz użyć składni controllerAs, na przykład:
źródło
Możesz załadować wiele aplikacji kątowych, ale:
1) Musisz ręcznie załadować je
2) Nie należy używać „document” jako katalogu głównego, ale węzeł, w którym znajduje się interfejs kątowy, do:
To byłoby bezpieczne.
źródło
Ręczne ładowanie obu modułów będzie działać. Spójrz na to
Oto link do Plunkera http://plnkr.co/edit/1SdZ4QpPfuHtdBjTKJIu?p=preview
UWAGA: w html nie ma
ng-app
.id
został użyty zamiast tego.źródło
Zrobiłem POC dla aplikacji Angular, używając wielu modułów i gniazd routera, aby zagnieżdżać aplikacje podrzędne w jednej aplikacji strony. Możesz uzyskać kod źródłowy na: https://github.com/AhmedBahet/ng-sub-apps
Mam nadzieję, że to pomoże
źródło