Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

Módulos no Angular2

Uma coisa eu não entendi bem sobre os módulos.

Qual a necessidade deles, uma vez que o próprio Component já é suficiente para a visibilidade do mesmo no escopo da aplicação?

Eu consigo "modularizar" a minha aplicação, em partes menores? Pra fazer deploy's menores?

12 respostas

a ideia de modularizar e para poder reaproveitar esses módulos em outros projetos,

realmente no aplicativo do curso não tinha nesecidade de criar nenhum modulo, eles forao criados para mostrar como se faz mesmo

Tá, mas quero saber como fazer isso... no curso não ensinou. Estou procurando alguma referência.

solução!

Ensinei sim! Você criou NgModule!

Inclusive a pasta foto possui vários componentes que pertencem ao mesmo módulo.

Agora, para usa-lo em outros projetos sem copiar na mão você precisa de um build step e isso foge do escopo do Angular.

Sim, criou o ngModule, mas eu quero entender como faria pra que ele fosse algo "modular" de verdade, como um componente que eu aproveitaria em outros projetos. Pelo menos algum link de referência para eu pesquisar.

Quando você cria um módulo com @NgModule ele é "modular" de verdade. Um módulo é uma unidade de código confinada que você pode escolher importar ou não features dentro dele. Você fez isso em alurapic/client/foto. Qualquer outra aplicação que queria utilizar FotoModule, quando importá-lo, poderá utilizar tudo o que o módulo oferece. É algo completamente isolado de AppModule.

Você pode criar a aplicação A, B e C e todas podem importar de FotoModule. Importando o módulos, todos os componentes daquele módulo estão disponíveis.

Mas eu estou repetindo o que eu já lhe disse com outras palavras. Parece que não entendi sua dúvida, não sei.

O que eu queria realmente é saber se eu posso desenvolver um "NgModule", fora da pasta da minha aplicação, e importá-la lá dentro. Ou ainda, fazer deploy's em separado destes arquivos.

Exemplo: Faço um Select2 para angular, faço o componente, e uso em todos os meus projetos.

Aliás, no próprio treinamento se você não importar o módulo FotoComponent em AppModule, que é o módulo principal da sua aplicação, nada de FotoComponentestará acessível em AppModule. Poderia ter AppModule2 ou AppModule3 e essas outras apps importarem FotoModule.

Então eu poderia ter diversos "AppModule", mas eles necessariamente tem que estar na mesma pasta? Ou podem estar em outros locais totalmente isolados?

Sim, pode criar um módulo fora da aplicação sim. Como só criamos uma aplicação, eu criei um módulo dentro dela. Mas se você tivesse duas, era mover a pasta do lugar, algo básico que até com organizações de scripts o povo esta acostumado a fazer.

Então, todo o conhecimento basicao que você tem sobre estrutra de um projeto web se aplica em uma aplicação Angular no que diz respeito à hierarquia de arquivos e pastas.

Bom agora começou a clarear um pouco. Por hora encerro o tópico e muito obrigado! ;)

Podem estar em locais isolados, até porque, se você disse AppModule, um não tem relação com o outro.