Angular 2
Módulos
Buscar..
Introducción
Los módulos angulares son contenedores para diferentes partes de su aplicación.
Puede tener módulos anidados, su app.module
ya está anidando otros módulos como BrowserModule
y puede agregar RouterModule
y así sucesivamente.
Un modulo simple
Un módulo es una clase con el decorador @NgModule
. Para crear un módulo agregamos @NgModule
pasando algunos parámetros:
-
bootstrap
: El componente que será la raíz de su aplicación. Esta configuración solo está presente en su módulo raíz -
declarations
: Recursos que el módulo declara. Cuando agrega un nuevo componente, debe actualizar las declaraciones (ng generate component
hace automáticamente) -
exports
: recursos que el módulo exporta que se pueden usar en otros módulos. -
imports
: recursos que el módulo utiliza de otros módulos (solo se aceptan clases de módulos) -
providers
: Recursos que pueden inyectarse (di) en un componente.
Un ejemplo simple:
import { AppComponent } from './app.component';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
@NgModule({
bootstrap: [AppComponent]
declarations: [AppComponent],
exports: [],
imports: [BrowserModule],
providers: [],
})
export class AppModule { }
Módulos de anidamiento
Los módulos pueden ser anidadas mediante el uso de la imports
parámetro de @NgModule
decorador.
Podemos crear un core.module
en nuestra aplicación que contendrá cosas genéricas, como un ReservePipe
(una tubería que invierte una cadena) y agruparlas en este módulo:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ReversePipe } from '../reverse.pipe';
@NgModule({
imports: [
CommonModule
],
exports: [ReversePipe], // export things to be imported in another module
declarations: [ReversePipe],
})
export class CoreModule { }
Luego en el app.module
:
import { CoreModule } from 'app/core/core.module';
@NgModule({
declarations: [...], // ReversePipe is available without declaring here
// because CoreModule exports it
imports: [
CoreModule, // import things from CoreModule
...
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow