Entradas

Mostrando entradas de abril, 2015

AngularJS - Introducción: Inyección de dependencias

Imagen
La Inyección de Dependencias(DI - Dependency Injection) es un pilar fundamental de AngularJSy es que la DI se relaciona con la forma en la que se hacen referencias desde el código, pero, ¿qué es?  La Inyección de Dependencias es un patrón de diseño orientado a objetos. Este patrón nos dice que los objetos necesarios en una clase serán suministrados y que por tanto no necesitamos que la propia clase cree estos objetos.  El framework de AngularJS  gestiona la inyección de dependencias, por lo tanto, nuestras dependencias, como por ejemplo de servicios, serán suministradas por AngularJS. Por ello, al crear un componente de AngularJS se deben especificar las dependencias que esperamos y será el propio framework el que nos proporcione los objetos que se solicitan . Por ejemplo, si necesitamos utilizar un servicio en un controlador, al crear el controlador debemos especificar nuestra dependencia del servicio y no intentar crear un objeto del servicio. En este ejemplo se p

AngularJS - Introducción: Módulos (Modules)

Imagen
En los lenguajes de alto nivel por lo general se tiene una característica muy importante: la modularidad (por ejemplo: namespace en C# o package en Java). Sin embargo, ¿qué ocurre en Javascript con la modularidad? No existe , Javascript mantiene un espacio global para todo. ¿Qué implicaciones tiene esto? Que a medida que crezca nuestro código más sencillo es que se produzca una colisión de nombres de variables, funciones... AngularJS pretende solucionar los problemas con la modularidad de Javascript. Para ello AngularJS implementa el concepto de módulos , permitiendo la asociación de recursos a cada uno de los módulos. De esta forma, el framework nos proporciona una herramienta para poder realizar un división lógica de responsabilidades. ¿Qué es un módulo?  Un modulo es un objeto de AngularJS que actúa como contenedor de recursos y partes de la aplicación : Controladores, servicios, filtros, etc. [ 1 ]. En la siguiente imagen, obtenida de un vídeo de Dan Wahlin [ 2

Javascript: Jugando con fechas

A menudo ocurre que al escribir código obviamos ciertas características del lenguaje con el que se trabaja. Más todavía en Javascript dado que tenemos muchos caminos diferentes para llegar a un punto , por ejemplo, definiendo funciones[1]. En estos casos cada uno tiene sus manías para determinadas situaciones, pero al hacerlo podemos obviar ciertas especificaciones o comportamientos del lenguaje. Debido a esto, el otro día me encontré con un problema en Javascript en el cuál se encontraban fechas, que no se habían modificado, con la fecha 1/1/1970 . Las fechas venían en String por lo que era necesario transformarlas a objetos Date. Tras mucho depurar llegué a ver que en un punto (una directiva de AngularJS para fechas) estaba creando el objeto fecha de la siguiente forma: " new Date(fchEnString) " ¿Problema? Que no se comprobaba si el parámetro era null , aunque sí que existía una comprobación posterior acerca de si el objeto creado era una fecha válida.   Sin embargo,