Estou tentando adicionar dois aplicativos / módulos angulares a uma página. Nos fiddles abaixo você pode ver que sempre apenas o primeiro módulo, referenciado no código html, funcionará corretamente, enquanto o segundo não é reconhecido pelo angular.
Neste violino podemos apenas executar o doSearch2
método, enquanto neste violino apenas o doSearch
método funciona corretamente.
Estou procurando uma maneira de colocar corretamente dois módulos angulares em uma página.
fonte
ng-app="project"
e diz que "isso permite que você tenha módulos que rodam em diferentes partes da página", mas o documento ngApp afirma que "apenas uma diretiva pode ser usada por documento HTML".ng-app
(porque não vai funcionar).ng-app
só pode ser usado uma vez por documento HTML. Na verdade, é apenas um atalho se você tiver apenas um aplicativo na página, o que é normal.Eu criei uma diretiva alternativa que não tem
ngApp
limitações. É chamadongModule
. Esta é a aparência de seu código ao usá-lo:Você pode obter o código-fonte em:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
É essencialmente o mesmo código usado internamente pelo AngularJS sem limitações.
fonte
Por que você deseja usar vários [ng-app]? Como o Angular é retomado usando módulos, você pode usar um aplicativo que usa várias dependências.
Javascript:
HTML:
EDITAR
Lembre-se de que se quiser usar o controlador dentro do controlador, você deve usar a sintaxe controllerAs, assim:
fonte
Você pode inicializar vários aplicativos angulares, mas:
1) Você precisa inicializá-los manualmente
2) Você não deve usar "documento" como raiz, mas o nó onde a interface angular está contida para:
Isso seria seguro.
fonte
A inicialização manual de ambos os módulos funcionará. Veja isso
Aqui está o link para o Plunker http://plnkr.co/edit/1SdZ4QpPfuHtdBjTKJIu?p=preview
NOTA: Em html, não existe
ng-app
.id
foi usado em seu lugar.fonte
Fiz um POC para um aplicativo Angular usando vários módulos e saídas de roteador para aninhar subaplicativos em um aplicativo de página única. Você pode obter o código-fonte em: https://github.com/AhmedBahet/ng-sub-apps
Espero que isso ajude
fonte