diff --git a/aio/content/guide/frequent-ngmodules.md b/aio/content/guide/frequent-ngmodules.en.md similarity index 100% rename from aio/content/guide/frequent-ngmodules.md rename to aio/content/guide/frequent-ngmodules.en.md diff --git a/aio/content/guide/frequent-ngmodules.es.md b/aio/content/guide/frequent-ngmodules.es.md new file mode 100644 index 000000000000..c9bc0a1b3949 --- /dev/null +++ b/aio/content/guide/frequent-ngmodules.es.md @@ -0,0 +1,126 @@ +# Módulos utilizados frecuentemente + +Una app de Angular requiere al menos un módulo que funciona como el módulo raíz. +Puedes agregar nuevas funcionalidades a tu app enforma de módulos. +A continuación encontrarás módulos frecuentemente utilizados en Angular +con ejemplos de lo que contienen: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ NgModule + + Impórtalo desde + + Para que sirve +
BrowserModule@angular/platform-browserPermite correr tu app en un navegador
CommonModule@angular/commonPermite utilizar NgIf, NgFor
FormsModule@angular/formsPermite utlizar formularios basados en plantillas (incluye NgModel)
ReactiveFormsModule@angular/formsPermite crear formularios reactivos
RouterModule@angular/routerPermite utlizar RouterLink, .forRoot(), y .forChild()
HttpClientModule@angular/common/httpPermite comunicarte con un servidor
+ +## Importación de módulos + +Al utilizar estos módulos de Angular, importalos dentro de `AppModule`, +o en tu modulo de funcionalidades en caso de ser necesario, y enlístalos +en el array de `imports` de `@NgModule`. Por ejemploe, en la app básica +generada por la [Angular CLI](cli), `BrowserModule` es el primero en ser importado +al inicio de `AppModule`, `app.module.ts`. + + +```typescript +/* importa los módulos de manera que AppModule pueda accederlos */ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; + +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ /* agrega los módulos aquí para que Angular pueda utilizarlos */ + BrowserModule, + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } +``` + +Los imports al inicio del array son declaraciones de importación de Javascript +mientras que el array de `imports` dentro de `@NgModule` es específico de Angular. +Para más información sobre sus diferencias, consulta [JavaScript Modules vs. NgModules](guide/ngmodule-vs-jsmodule). + + +## `BrowserModule` y `CommonModule` + +`BrowserModule` importa a `CommonModule`, el cual contibuyte con muchas +directivas comunes como `ngIf` y `ngFor`. Adicionalmente, `BrowserModule` +exporta nuevamente a `CommonModule` haciendo que todas sus directivas +estén disponibles a cualquier módulo que importe a `BrowserModule`. + +Para apps que corran en el navegador, importa `BrowserModule` en la +raíz `AppModule` ya que así proveerá los servicios escenciales para +iniciar y correr la app en el navegador. Los proveedores de `BrowserModule` +son para toda la aplicación por lo que debería de estar sólamente dentro +del módulo raíz, no en módulos de funcionalidades. Los módulos de funcionalidades +solamente necesitan de las directivas comunes encontradas en `CommonModule`; +no necesitan volver a instalar proveedores que sirven para toda la aplicación. + +Si llegas a importar `BrowserModule` dentro de un módulo de funcionalidad +con carga diferida, Angular regresará un error diciéndote que utilizes `CommonModule`. + + + +
+ + +## Más sobre NgModules + +Puede que estés interesado en lo siguiente: +* [Bootstrapping](guide/bootstrapping). +* [NgModules](guide/ngmodules). +* [JavaScript Modules vs. NgModules](guide/ngmodule-vs-jsmodule).