¿Cuál es la diferencia entre una directiva y un servicio en Angular?

Directivas AngularJS

Las directivas AngularJS son atributos HTML extendidos con el prefijo ng- .

La directiva ng-app inicializa una aplicación AngularJS.

La directiva ng-init inicializa los datos de la aplicación.

La directiva ng-model vincula el valor de los controles HTML (input, select, textarea) a los datos de la aplicación.

Lea sobre todas las directivas de AngularJS en nuestra referencia de directivas de AngularJS.

Servicios

Los servicios de AngularJS son objetos sustituibles que se conectan entre sí mediante inyección de dependencia (DI). Puede usar los servicios para organizar y compartir código en su aplicación.

Los servicios de AngularJS son:

  • Instancia perezosa: AngularJS solo crea instancias de un servicio cuando un componente de la aplicación depende de él.
  • Singletons: cada componente que depende de un servicio obtiene una referencia a la instancia única generada por la fábrica de servicios.

AngularJS ofrece varios servicios útiles (como $http ), pero para la mayoría de las aplicaciones también querrá crear el suyo propio.

Nota: Al igual que otros identificadores centrales de AngularJS, los servicios integrados siempre comienzan con $ (por ejemplo, $http ).

Leer más: AngularJS

En un nivel superior, la directiva es un marcador de posición en dom que le dice a angular que adjunte algún comportamiento al elemento. Por ejemplo, ng-if es una directiva que le dice a angular en qué condición tiene que representar ese elemento.

Y el servicio es básicamente una función para la fuente de datos, por ejemplo, usted tiene una aplicación demasiado y desea criticar las operaciones con elementos de tareas pendientes. Luego crea una capa de servicio que maneja todas las operaciones relacionadas con crud.

Las ventajas del servicio es que es reutilizable, por lo que puede utilizar la misma funcionalidad en todos los componentes.

La directiva es un atributo en sus etiquetas (componentes) y un servicio es una funcionalidad que puede replicar en varias vistas (Métodos, Valores, etc.) en su aplicación.

Aclamaciones,

Carlos Rojas

Lo primero y más importante es que nada se conoce como Angular 2. Angular (2 o 4 o cualquier próximo lanzamiento) o Angular JS (versiones anteriores).

Las directivas no están limitadas en el uso de atributos. Las directivas agregan comportamiento a un elemento DOM existente. Un ejemplo de caso de uso para @Directive sería agregar un resaltado al pasar el mouse sobre él.

Las directivas son como un atributo (pero más que un atributo). puede obtener elementos del DOM existente y luego puede hacer cambios en él o incluso modificar el modelo DOM. Tenga en cuenta que la Directiva no es la plantilla, es solo una extensión que le permite modificar la plantilla.

importar {Directiva} desde ‘angular2 / core’ ‘;

@Directiva({
selector: “[log-on-click]”,
hostListeners: {
‘click’: ‘onClick ()’
}
})
clase LogOnClick {

constructor () {}

onClick () {console.log (‘¡Elemento hecho clic!’); }
}

Servicios por otro lado

En lugar de copiar y pegar el mismo código una y otra vez, creará un único servicio de datos reutilizable y lo inyectará en los componentes que lo necesitan. El uso de un servicio separado mantiene los componentes esbeltos y enfocados en soportar la vista, y facilita la prueba de los componentes con un servicio simulado.

Los servicios son más para compartir datos entre componentes y también para hacer llamadas http y mantener la lógica que no molesta a la plantilla en un archivo separado.

El servicio nos permite utilizar la inyección de dependencia, que es una de las mejores características de Angular.

Para obtener más información sobre conceptos angulares, consulte el enlace ghpages de mi página angular

Conceptos angulares

La directiva es donde ocurre la manipulación DOM, los servicios son donde usted escribe su lógica comercial