Estoy tratando de entender Angular (a veces llamado Angular2 +), luego me encontré con @Module:
Importaciones
Declaraciones
Proveedores
Siguiente inicio rápido angular
fuente
Estoy tratando de entender Angular (a veces llamado Angular2 +), luego me encontré con @Module:
Importaciones
Declaraciones
Proveedores
Siguiente inicio rápido angular
Conceptos angulares
imports hace que las declaraciones exportadas de otros módulos estén disponibles en el módulo actualdeclarationsdeben hacer que las directivas (incluidos los componentes y las tuberías) del módulo actual estén disponibles para otras directivas en el módulo actual. Los selectores de directivas, componentes o tuberías solo se comparan con el HTML si se declaran o importan.providersson para hacer que los servicios y valores sean conocidos por DI (inyección de dependencia). Se agregan al ámbito raíz y se inyectan a otros servicios o directivas que los tienen como dependencia.Un caso especial providersson los módulos con carga lenta que obtienen su propio inyector secundario. providersde un módulo con carga diferida solo se proporcionan a este módulo con carga diferida de forma predeterminada (no toda la aplicación como lo es con otros módulos).
Para obtener más detalles sobre los módulos, consulte también https://angular.io/docs/ts/latest/guide/ngmodule.html
exportshace que los componentes, directivas y tuberías estén disponibles en módulos a los que se agrega este módulo imports. exportstambién se puede usar para reexportar módulos como CommonModule y FormsModule, que a menudo se realiza en módulos compartidos.
entryComponentsregistra componentes para la compilación fuera de línea para que puedan usarse con ViewContainerRef.createComponent(). Los componentes utilizados en las configuraciones de enrutador se agregan implícitamente.
Importaciones TypeScript (ES2015)
import ... from 'foo/bar'(que puede resolverse en unindex.ts ) son para importaciones de TypeScript. Los necesita cada vez que utiliza un identificador en un archivo de mecanografía que se declara en otro archivo de mecanografía.
Angular @NgModule() importsy TypeScript importson conceptos completamente diferentes .
Consulte también jDriven: sintaxis de importación de TypeScript y ES6
La mayoría de ellos son en realidad sintaxis de módulo ECMAScript 2015 (ES6) que TypeScript también usa.
forRoot()en un módulo con carga lenta. ¿Estás de acuerdo? Ver El Módulo Central . El enlace a # shared-module-for-root ya no existe.importes una funcionalidad JS (ES2015), no TypeScript. :)imports, pero exportar sus declarables (componente, directiva, canalización) conexports. Entonces, los objetivos principales deimportsyexportsson cosas diferentes. En cambio, el objetivo principal deexportses tudeclarations. Declaras tu componente pordeclarations, pero para el componente dinámico cargado, necesitas ponerloentryComponents. Mientras tanto,providersDI las gestiona en otra historia.importsse utilizan para importar módulos de soporte como FormsModule, RouterModule, CommonModule o cualquier otro módulo de características personalizado.declarationsse utilizan para declarar componentes, directivas, tuberías que pertenecen al módulo actual. Todos los que están dentro de las declaraciones se conocen. Por ejemplo, si tenemos un componente, digamos UsernameComponent, que muestra una lista de los nombres de usuario y también tenemos una tubería, digamos toupperPipe, que transforma una cadena en una cadena de letras mayúsculas. Ahora, si queremos mostrar los nombres de usuario en letras mayúsculas en nuestro UsernameComponent, entonces podemos usar el toupperPipe que habíamos creado antes, pero la pregunta es cómo UsernameComponent sabe que existe el toupperPipe y cómo puede acceder y usarlo. Aquí vienen las declaraciones, podemos declarar UsernameComponent y toupperPipe.Providersse utilizan para inyectar los servicios requeridos por componentes, directivas, tuberías en el módulo.fuente
Los componentes se declaran, los módulos se importan y se proporcionan servicios. Un ejemplo con el que estoy trabajando:
fuente
@NgModuleConstrucciones angulares :import { x } from 'y';: Esta es la sintaxis de tipografía estándar (sintaxis deES2015/ES6módulo) para importar código de otros archivos. Esto no es angular específico . Además, técnicamente esto no forma parte del módulo, solo es necesario obtener el código necesario dentro del alcance de este archivo.imports: [FormsModule]: Importas otros módulos aquí. Por ejemplo, importamosFormsModuleen el siguiente ejemplo. Ahora podemos usar la funcionalidad que FormsModule tiene para ofrecer en este módulo.declarations: [OnlineHeaderComponent, ReCaptcha2Directive]: Pones aquí tus componentes, directivas y tuberías. Una vez declarado aquí, ahora puede usarlos en todo el módulo. Por ejemplo, ahora podemos usarOnlineHeaderComponenten laAppComponentvista (archivo html). Angular sabe dónde encontrar estoOnlineHeaderComponentporque está declarado en el@NgModule.providers: [RegisterService]: Aquí se definen nuestros servicios de este módulo específico. Puede usar los servicios en sus componentes inyectando inyección de dependencia.Módulo de ejemplo:
fuente
Agregar una hoja de trucos rápida que puede ayudar después del largo descanso con Angular:
Declaraciones
Ejemplo:
declarations: [AppComponent]¿Qué podemos inyectar aquí? Componentes, tuberías, directivas.
IMPORTACIONES
Ejemplo:
imports: [BrowserModule, AppRoutingModule]¿Qué podemos inyectar aquí? otros módulos
PROVEEDORES
Ejemplo:
providers: [UserService]¿Qué podemos inyectar aquí? servicios
OREJA
Ejemplo:
bootstrap: [AppComponent]¿Qué podemos inyectar aquí? El componente principal que generará este módulo (nodo principal superior para un árbol de componentes)
COMPONENTES DE ENTRADA
Ejemplo:
entryComponents: [PopupComponent]¿Qué podemos inyectar aquí? componentes generados dinámicamente (por ejemplo, usando ViewContainerRef.createComponent ())
EXPORTAR
Ejemplo:
export: [TextDirective, PopupComponent, BrowserModule]¿Qué podemos inyectar aquí? componentes, directivas, módulos o tuberías a los que nos gustaría tener acceso en otro módulo (después de importar este módulo)
fuente
fuente