Qué es AngularJS?

Angularjs es un framework de aplicaciones web de código abierto. Originalmente fue desarrollado en 2009 por Misko Hevery y Adam Abrons. En la actualidad es mantenido por Google. Su última versión es la 1.4.8 y es la que se usará durante el curso.

AngularJS es un framework para la creación de aplicaciones web dinámicas. Permite usar HTML como un lenguaje de plantilla y extender la sintaxis de marcado de tal forma de expresar los componente de una aplicación de una forma clara y concisa. La dependencias y constructores de AngularJS eliminan mucho código a escribir. Todo esto gracias al navegador, que se convierte es un socio como cualquier servidor.

Características

  • AngularJS es un poderoso framework basado en Javascript para crear crear aplicaciones de internet enriquecidas (RIA).
  • AngularJS no ofrece la posibilidad de escribir un aplicación del lado del cliente implementando el Model-Vista-Controlador.
  • La aplicaciones escritas con AngularJS son cross-browser. AngularJS maneja de forma apropiada la ejecución en cada navegador.
  • AngularJS es open-source y es gratuito.

En resumen, AngularJS es un framework para construir aplicaciones web a gran escala y alto rendimiento mantenimiento el concepto easy-to-maintain.

Características Principales

Las siguientes, son las características más relevantes de AngularJS

Data-Binding: es la sincronización automática de datos los componentes de la vista y el modelo.

Scope: Estos son objetos que se refieren al modelo. Estos actúan como un enlazador entre el controlador y la vista.

Controller: Son funciones de Javascript que están atados a un scope en particular.

Services: AngularJS tiene por defecto varios servicios ya construidos, por ejemplo $http para realizar peticiones XMLHttpRequests. Son un objeto singleton el cual es instanciado solo una vez en la aplicación.

Filters: Estos son una selección de objetos que se realizan de un array y retorna uno nuevo.

Directives: Son marcas sobre los elementos del DOM, que pueden ser utilizadas para crear etiquetas HTML y/o widgets personalizados. Podemos encontrar como ejemplo de directivas ngBind o ngModel.

Templates: Se utilizan para la generación de vistas dinámicas a partir de información manipulada por el controlador y el modelo. Estos pueden ser archivos simples o múltiples vistas.

Routing: Es la forma de cambiar de vistas.

MVW (Model – View – Whatever): AngularJS no implementa el MVC tradicional y es acerca más la MVVM (Model-View-ViewModel) por esta razón MVW es una manera humorística de llamar a este modelo.

Deep Linking: Esta propiedad permite codificar el estado de una aplicación en una URL y puede ser restaurada desde la URL y con el mismo estado.

Conceptos

angularjs_conceptos

Ventajas de AngularJS

  • Tiene la capacidad de crear aplicaciones SPA (Single – Page – Application) de una forma limpia y mantenible.
  • Gracias al Data-Binding le da al usuario un experiencia mas enriquecida y receptiva.
  • Unit – Test es posible
  • Separación de Intereses (separation of concerns)
  • Componentes re-utilizables.
  • Menos código y mas funcionalidad.

Desventaja de AngularJS

  • Seguridad: Las aplicaciones escritas con AngularJS no son seguras. Del lado del servidor se deben mantener la autenticación y autorización de la información.

Componentes de AngularJS

AngularJS se puede dividir en las siguientes tres partes:
  • ng-app: Esta directiva define y enlaza una aplicación AngularJS con el HTML
  • ng-model: Esta directiva empaqueta los valores de una aplicacion con los controles de entrada (input) del HTML.
  • ng-bind: Se encarga de empaquetar una aplicación AngularJS en un etiqueta HTML.