Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:04_masdirectivas:11_rootscope [2014/08/27 11:14]
admin
unidades:04_masdirectivas:11_rootscope [2014/08/30 09:58] (actual)
admin
Línea 1: Línea 1:
 ====== 4.11 $rootScope ====== ====== 4.11 $rootScope ======
-En este tema vamos a hablar del ''​$rootScope''​ que no es una directiva , aunque la unidad se llame ''​Mas directivas''​.+En este tema vamos a hablar del ''​$rootScope''​que no es una directiva , aunque la unidad se llame ''​Mas directivas''​.
  
 El ''​$rootScope''​ es el ''​scope''​ del que heredan el resto de los scopes que usamos en los controladores ((Realmente hay mas sitios donde se usan scopes)). Su utilidad es como variable global ya que nos permite añadir propiedades a él y que el resto de controladores tengan acceso. El ''​$rootScope''​ es el ''​scope''​ del que heredan el resto de los scopes que usamos en los controladores ((Realmente hay mas sitios donde se usan scopes)). Su utilidad es como variable global ya que nos permite añadir propiedades a él y que el resto de controladores tengan acceso.
Línea 6: Línea 6:
 Al ser como una variable global hay que usarlo con cuidado y en general si tenemos algún dato global es mejor usar un servicio para guardar dicho dato que usar el ''​$rootScope''​. ​ Al ser como una variable global hay que usarlo con cuidado y en general si tenemos algún dato global es mejor usar un servicio para guardar dicho dato que usar el ''​$rootScope''​. ​
  
-Sin embargo el ''​$rootScope''​ tiene una ventana sobre un servicio. Usando un servicio nos obliga en todos los ''​scope''​ que necesitemos ​el tener que inyectarlo y guardarnos sus datos. Es decir que hay que repetir ese pequeño trozo de código en todos los controladores. Sin embargo , usando ''​$rootScope'' ​mas un servicio podemos tener lo mejor de ambos mundos.+Sin embargo el ''​$rootScope''​ tiene una ventana sobre un servicio. Usando un servicio nos obliga en todos los ''​scope''​ que necesitemos ​tener que inyectarlo y guardarnos sus datos. Es decir que hay que repetir ese pequeño trozo de código en todos los controladores. Sin embargo , usando ''​$rootScope'' ​más un servicio podemos tener lo mejor de ambos mundos.
  
-Veamos ahora un ejemplo ​esto.En este ejemplo vamos a suponer que todos los controladores necesitan ​de la propiedad ''​appName''​ con el nombre de la aplicación para poder mostrarla en la página.+Veamos ahora un ejemplo ​de ésto.En este ejemplo vamos a suponer que todos los controladores necesitan la propiedad ''​appName''​ con el nombre de la aplicación para poder mostrarla en la página.
  
-El códigi ​JavaScript de los controladores quedaría así:+El código ​JavaScript de los controladores quedaría así:
  
 <sxh js> <sxh js>
Línea 23: Línea 23:
 </​sxh>​ </​sxh>​
  
-Vemos como tenemos 2 controladores ("​ControllerA"​ y "​ControllerB"​), en ambos casos definimos la misma propiedad en el ''​$scope''​ llamada ''​appName''​. Nos podríamos ahorrar las 2 líneas (o muchas ​mas si hubiera ​mas controladores) usando ''​$rootScope''​ y definiendo la propiedad ''​appName''​ en él.+Vemos que tenemos 2 controladores ("​ControllerA"​ y "​ControllerB"​). En ambos casos definimos la misma propiedad en el ''​$scope''​ llamada ''​appName''​. Nos podríamos ahorrar las 2 líneas (o muchas ​más si hubiera ​más controladores) usando ''​$rootScope''​ y definiendo la propiedad ''​appName''​ en él.
  
-Para definir una única vez la propiedad y fuera los controladores se usan un [[unidades:​03_servicios:​04_tiposservicios#​bloque_run|bloque run]].+Para definir una única vez la propiedad y fuera de los controladores se usan un [[unidades:​03_servicios:​04_tiposservicios#​bloque_run|bloque run]].
  
 <sxh js;​highlight:​[1,​2,​6,​10]>​ <sxh js;​highlight:​[1,​2,​6,​10]>​
Línea 48: Línea 48:
 ===== Servicio ===== ===== Servicio =====
  
-Pero como ya hemos dicho está un poco mal tener valor que sean constantes directamente en [[unidades:​03_servicios:​04_tiposservicios#​bloque_run|bloques run]] o [[unidades:​03_servicios:​04_tiposservicios#​bloque_config|bloques config]]. Así que vamos a crear un [[unidades:​03_servicios:​06_value|value]] para guardar el valor.+Pero como ya hemos dicho está un poco mal tener valores ​que sean constantes directamente en [[unidades:​03_servicios:​04_tiposservicios#​bloque_run|bloques run]] o [[unidades:​03_servicios:​04_tiposservicios#​bloque_config|bloques config]]. Así que vamos a crear un [[unidades:​03_servicios:​06_value|value]] para guardar el valor.
  
 <sxh js;​highlight:​[1,​3,​4]>​ <sxh js;​highlight:​[1,​3,​4]>​
Línea 68: Línea 68:
   * Linea 1: Definimos el servicio de tipo ''​value''​ con el valor de ''​appName''​.   * Linea 1: Definimos el servicio de tipo ''​value''​ con el valor de ''​appName''​.
   * Línea 3: Inyectamos el valor del servicio ''​appName''​ en el bloque run.   * Línea 3: Inyectamos el valor del servicio ''​appName''​ en el bloque run.
-  * Línea 4: Asignamos ​al valor del servicio a la propiedad ''​appName''​.+  * Línea 4: Asignamos ​el valor del servicio a la propiedad ''​appName''​.
  
 Este último cambio parece un poco tonto ya que hemos movido el valor del bloque run al ''​value. Realmente es necesario ya que de esa forma podremos usar el valor de ''​appName''​ en otros sitios además del bloque run. Este último cambio parece un poco tonto ya que hemos movido el valor del bloque run al ''​value. Realmente es necesario ya que de esa forma podremos usar el valor de ''​appName''​ en otros sitios además del bloque run.
unidades/04_masdirectivas/11_rootscope.txt · Última modificación: 2014/08/30 09:58 por admin
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0