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

Forma diferente de adicionar o service

Ao fazer os exercícios da aula eu percebi que, por distração, eu adicionei a classe FotoService direto no AppModule, ao invés de em FotoModule. Percebi inclusive que fiz isso com outras classes. Segue o código para ficar mais claro:

foto.module.ts:

import {NgModule} from '@angular/core'
import {FotoComponent} from './foto.component'

@NgModule({
    declarations: [FotoComponent],
    exports: [FotoComponent]
})

export class FotoModule{}

app.module.ts:

import { NgModule} from '@angular/core';
import { BrowserModule} from '@angular/platform-browser';
import { AppComponent} from './app.component';
import { FotoModule} from './foto/foto.module';
import { HttpModule } from '@angular/http';
import 'rxjs/add/operator/map';
import { PainelModule} from './painel/painel.module';
import { CadastroComponent} from './cadastro/cadastro.component';
import { ListagemComponent} from './listagem/listagem.component';
import { routing} from './app.route'
import {filtroPorTitulo} from './foto/foto.pipes'
import { FormsModule} from '@angular/forms'
import { ReactiveFormsModule} from '@angular/forms'
import { FotoService} from './foto/foto.service'

@NgModule({
    imports: [BrowserModule, FotoModule, HttpModule, PainelModule, routing, FormsModule, ReactiveFormsModule],
    declarations: [AppComponent, CadastroComponent, ListagemComponent, filtroPorTitulo],
    bootstrap: [AppComponent],
    providers: [FotoService]
})
export class AppModule{

}

Tudo está funcionando normalmente. Minha pergunta é: existe alguma consequência prática de fazer a importação e declaração das classes dessa forma?

Obrigado

4 respostas

Não é necessário criar um modulo de um componente quando você não tem nenhuma regra de negócio atrelada a ele.

Faz sentido?

solução!

Oiii Marcos, além do que o Marco Bruno falou, tem a questão da organização do seu app.module - que é o módulo principal da aplicação.

Para ele não fica muito grande e de difícil manutenção, no caso de aplicações com muitos componentes ou serviços, pipes, diretivas, o ideal é organizar estes um módulo e importar apenas os módulos em app.module.

Então eu vejo também que é uma maneira de estruturar e organizar o seu projeto. Porém não é algo estrito, como vc mesmo pôde ver, é algo flexível, ou seja, nem todo componente precisa de um módulo. Porém tudo que vc criar deve estar em app.module (diretamente ou por intermédio de um outro módulo).

Abraços, bons estudos.

Caramba, aí sim Vanessa. Aprendi umas coisas aí :-)

Legal, muito obrigado pela ajuda. Imaginei que poderia ser algo envolvendo organização, mas quis investigar se não tinha outras questões a serem consideradas.

Abraços