zagnieżdżone moduły w AngularJS
Mam N modułów kątowych. Jednym z nich jest kontener root, który uruchamia się i istnieje cały cykl życia strony. Wszystkie pozostałe N-1 to gry zagnieżdżone wewnątrz strony, które muszą być ładowane dynamicznie i rozładowywane (Jak rozładować moduły angularjs) także.
.------------------.
|Container |
| .----------. |
| |Game | |
| | | |
| | | |
| `----------` |
`------------------`
DetaleKażda gra - w ten sam sposób, jak moduł kątowy, który ma jako główny kontener zależności, do wykonywania niektórych interakcji API.
PrzykładPo kilku eksperymentach znalazłem to w zagnieżdżonych modułach Angularjs 1.1.5prawie(!) działa prawidłowo:http://plnkr.co/edit/kJao7o
Ale z nowym Angularjs (1.2.0-rc2) jest uszkodzony:http://plnkr.co/edit/ZyhbRu
Dlaczego prawie?Ten przykład nadal wywołuje wyjątek:
Błąd: Argument „GameCtrl” nie jest funkcją, został niezdefiniowany
Próbowałem użyćng-include aby zapobiec automatycznemu wtrysku z AngularJS. Ale wciąż ma ten sam problem (http://plnkr.co/edit/EM1MbB);
Co jest nie tak?Wiem, że niemożliwe jest użycie zagnieżdżonej aplikacji ng na tej samej stroniehttp://docs.angularjs.org/api/ng.directive:ngApp
W jaki sposób?Ale w jaki sposób można użyć więcej niż jednego zagnieżdżonego modułu kątowego na tej samej stronie (z własnymi kontrolerami)?
Pluskwa?I nie wiem, czy to tylko tymczasowy błąd, czy zespół Angulara decyduje się na uniknięcie zagnieżdżonych modułów. Czy ktoś coś o tym wie?
Zły pomysł?Lub, jeśli używanie modułów do tego problemu jest złym pomysłem - jaka jest najlepsza decyzja?
Powód używania modułów w tej aplikacjiIzolacja zakresu nazwy (aby uniknąć kolizji nazw). Mogę zagwarantować, że każda z dwóch lub więcej przyszłych gier nie będzie używać tych samych nazw ctrls lub czegoś takiego;Wyjmowanie modułów (nie wiem, czy jest to możliwe w AngularJs - ale spróbuję);