Saltar al contenido

¿Cuál es la diferencia entre servicio, directiva y módulo?

Esta crónica fue probado por nuestros expertos así se garantiza la veracidad de esta sección.

Solución:

De mis propias notas personales (en su mayoría fragmentos de documentos, publicaciones del grupo de Google y publicaciones SO):

Módulos

  • proporcionar una forma de servicios de grupo / espacio de nombres, directivas, filtros, información de configuración y código de inicialización
  • ayudar a evitar variables globales
  • se utilizan para configurar el $ injector, lo que permite que las cosas definidas por el módulo (o todo el módulo en sí) se inyecten en otro lugar (cosas de Inyección de dependencia)
  • Los módulos angulares no están relacionados con CommonJS o Require.js. A diferencia de los módulos AMD o Require.js, los módulos Angular no intentan resolver el problema del orden de carga de scripts o la búsqueda diferida de scripts. Estos objetivos son ortogonales y ambos sistemas de módulos pueden convivir uno al lado del otro y cumplir sus objetivos (así lo afirman los documentos).

Servicios

  • son singleton, por lo que solo hay una instancia de cada servicio que defina. Como singletons, no se ven afectados por los alcances y, por lo tanto, se puede acceder a ellos (compartir con) múltiples vistas / controladores / directivas / otros servicios
  • Puede (y probablemente debería) crear servicios personalizados cuando
    • dos o más cosas necesitan acceso a los mismos datos (no use el alcance raíz) o simplemente desea encapsular cuidadosamente sus datos
    • desea encapsular interacciones con, digamos, un servidor web (extienda $ resource o $ http en su servicio)
  • Los servicios integrados comienzan con ‘$’.
  • Para utilizar un servicio, se requiere la inyección de dependencia en el dependiente (por ejemplo, en el controlador u otro servicio, o una directiva).

Directivas (algunos de los elementos a continuación dicen esencialmente lo mismo, pero he descubierto que a veces una redacción ligeramente diferente ayuda mucho)

  • son responsables de actualizar el DOM cuando cambia el estado del modelo
  • ampliar el vocabulario HTML = enseñar nuevos trucos HTML.
    Angular viene con un conjunto integrado de directivas (p. Ej., Ng- * stuff) que son útiles para crear aplicaciones web, pero puede agregar las suyas propias para que HTML se pueda convertir en un lenguaje específico de dominio (DSL) declarativo. Por ejemplo, el y elementos en la demostración de la página de inicio de Angular “Creación de componentes”.
    • Directivas integradas no obvias (porque no comienzan con “ng”): a, form, input, script, select, textarea. En Angular, ¡todos hacen más de lo normal!
  • Las directivas le permiten “componenteizar HTML”. Las directivas suelen ser mejores que ng-include. Por ejemplo, cuando comience a escribir mucho HTML con principalmente enlace de datos, refactorice ese HTML en directivas (reutilizables).
  • El compilador Angular le permite adjuntar comportamiento a cualquier elemento HTML o attribute e incluso crear nuevos elementos HTML o attributes con comportamiento personalizado. Angular llama a estas extensiones de comportamiento directivas.
    • Cuando lo reduce todo, una directiva es solo una función que se ejecuta cuando el compilador Angular la encuentra en el DOM.
  • Una directiva es un comportamiento o transformación DOM que se desencadena por la presencia de un attribute, un nombre de elemento, un nombre de clase o un nombre en un comentario. La directiva es un comportamiento que debe activarse cuando se encuentran construcciones HTML específicas en el proceso de compilación (HTML). Las directivas se pueden colocar en nombres de elementos, attributes, nombres de clases, así como comentarios.
    • La mayoría de las directivas se limitan a attribute solo. Por ejemplo, DoubleClick solo utiliza anuncios personalizados attribute directivas.
  • ver también ¿Qué es una directiva angularjs?

Defina y agrupe elementos angulares (elementos de inyección de dependencia) en módulos.
Comparta datos y envuelva la interacción del servidor web en los servicios.
Amplíe HTML y manipule DOM en directivas.
Y haga que los controladores sean lo más “delgados” posible.

Piense en un módulo como un lugar para conectar una serie de otras cosas, como directivas, servicios, constantes, etc. Los módulos se pueden inyectar en otros módulos, lo que le proporciona un alto nivel de reutilización.

Al escribir una aplicación angular, tendría un módulo de nivel superior que es el código de su aplicación (sin plantillas).

Los servicios son principalmente una forma de comunicarse entre controladores, pero puede inyectar un servicio en otro. Los servicios se utilizan a menudo como una forma de llegar a sus almacenes de datos y la gente ajustará las API angulares, como ngResource. Esta técnica es útil ya que hace que las pruebas (particularmente las burlas) sean bastante fáciles. Puede tener servicios para hacer otras cosas como autenticación, registro, etc.

Las directivas se utilizan para crear widgets o envolver cosas existentes como complementos de jquery. Envolver los complementos existentes puede ser un desafío y la razón por la que haría esto es para establecer un enlace de datos bidireccional entre los complementos y angular. Si no necesita un enlace de datos bidireccional, no es necesario que los ajuste.

Una directiva también es un lugar para realizar manipulación DOM, capturar eventos DOM, etc. No debería estar haciendo cosas relacionadas con DOM en controladores o servicios. La creación de directivas puede resultar bastante compleja. En mi humilde opinión, recomiendo buscar primero en la API algo que pueda hacer lo que estás buscando O pedir consejo al Grupo de Google de Angular.

Nos encantaría que puedieras comunicar este tutorial si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *