ngclick example angular

example - Núcleo angular/característica/módulos compartidos: qué va a dónde



ng-click function (1)

En primer lugar, no es un duplicado de ninguna otra pregunta y he leído la guía angular sobre eso. Sin embargo todavía tengo varias preguntas.

El módulo de funciones es el más sencillo: tiene una función, agrúpela en un módulo de características. Digamos que además de la característica obvia tengo las páginas que cada aplicación tiene:

  1. Página de inicio principal (no app.template.html, sino algo que representa primero en su enrutador-salida)
  2. Páginas de error, como 404
  3. Página de contactos, página de nosotros

Probablemente podría mover todo a un módulo de características llamado ''estático'', pero no me gusta el nombre y tampoco me gusta agrupar cosas no relacionadas en su totalidad en el mismo módulo, es decir, página de error y página de contacto. Entonces, ¿qué es un patrón para las páginas mencionadas?

Ahora, módulo compartido vs núcleo. Tengo los siguientes artículos:

  1. CsrfService (me suena a core one)
  2. Logger (servicio angular2-logger)
  3. HttpModule (core o compartido?)
  4. Logged-in-guard y AuthService (tengo NavbarComponent / NavbarModule y LoginComponent usando AuthService), ¿son una característica (login / auth) o son un núcleo / compartido?

Entonces, la pregunta principal es cómo elegir decidir por los elementos que enumeré y por nuevos elementos como esos.


Las respuestas a su pregunta son subjetivas, sin embargo, hay algunas recomendaciones de los documentos oficiales que puede seguir: ¿Qué tipo de módulos debo tener y cómo debo usarlos? . Si no ha leído los documentos en NgModule y en las preguntas frecuentes, sugeriría dedicar unas horas a estudiarlos, las cosas serán mucho más claras (al menos, lo fueron para mí :)

Estoy usando la siguiente configuración y funciona bastante bien para mí :

  • app / shared : este es el módulo donde guardo las cosas pequeñas que necesitarán todos los demás módulos. Tengo 3 submódulos allí directives , components y pipes , solo para mantener las cosas un poco mejor organizadas. Ejemplos: filesize.pipe , click-outside.directive , offline-status.component ...
  • aplicación / público : en este módulo mantengo las rutas públicas y los componentes de nivel superior. Ejemplos: about.component , contact.component , app-toolbar.component
  • app / core : los servicios que la aplicación necesita (y no pueden funcionar sin ella) van aquí. Ejemplos: ui.service , auth.service , auth.guard , data.service , data.service ....
  • Aplicación / protegido : similar al público , solo para usuarios autorizados. Este módulo tiene rutas protegidas y componentes de alto nivel. Ejemplos: user-profile.component , dashboard.component , dashboard-sidebar.component ...
  • aplicación / características : este es el módulo donde se encuentran las funcionalidades de la aplicación. Están organizados en varios submódulos. Si la aplicación reproduce música, aquí es donde irían los submódulos de player , playlist y favorites . Si nos fijamos en @angular/material2 esto sería un equivalente a su MaterialModule y muchos submódulos, como MdIconModule , MdSidenavModule , etc.
  • app / dev : utilizo este módulo al desarrollar, no lo envié en producción.

El consejo general sería:

  • Organizar características por funcionalidad, no por páginas.
  • mantener rutas similares en su propio módulo (bueno para la carga perezosa)
  • Los servicios que la aplicación necesita para funcionar van al núcleo.
  • Las cosas que importa más de una vez (o dos) probablemente sean buenas para compartir.
  • Lee documentos en detalle, hay muchas cosas buenas allí.

Para responder a sus preguntas específicas: pondría todas esas rutas en un módulo: static , public , cualquiera que sea el nombre. CsrfService - core, Logger - core o dev, HttpModule - core, solo necesita una instancia (probablemente), auth - core. No pongas servicios en compartido.

Si no puede decidir cómo / qué agrupar en una función, cree una nueva aplicación, copie la carpeta de funciones específicas y debería funcionar allí también. Si no es así, tendrás que organizar mejor las cosas.