Diferencias

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

Enlace a la vista de comparación

unidades:03_servicios:06_value [2014/07/25 16:05]
admin creado
unidades:03_servicios:06_value [2014/08/29 21:39] (actual)
admin
Línea 1: Línea 1:
 ====== 3.6 value ====== ====== 3.6 value ======
 +Un ''​value''​ es un servicio al que le pasamos directamente el valor de dicho servicio. ​ Se define llamando al método ''​value''​ de un módulo.A dicho método le pasaremos el nombre y su valor.
  
 +Veamos ahora un ejemplo de ''​value''​.
 +
 +<sxh html;​title:​index.html>​
 +<​!DOCTYPE html>
 +<html ng-app="​app">​
 +
 +  <​head>​
 +    <script src="//​ajax.googleapis.com/​ajax/​libs/​angularjs/​1.2.19/​angular.min.js"></​script>​
 +    <script src="​script.js"></​script>​
 +  </​head>​
 +
 +  <body ng-controller="​PruebaController">​
 +    El valor del value "​miServicioValue"​ = {{valor}}
 +  </​body>​
 +
 +</​html>​
 +</​sxh>​
 +
 +<sxh js;​title:​script.js;​highlight:​ [3,​5,​6];>​
 +var app=angular.module("​app",​[]);​
 + 
 +app.value("​miServicioValue","​Hola mundo"​);​
 +
 +app.controller("​PruebaController",​["​$scope","​miServicioValue",​function($scope,​miServicioValue) {
 +  $scope.valor=miServicioValue;  ​
 +}]);
 +
 +</​sxh>​
 +
 +  * Línea 3: Se crea el ''​value''​ "​miServicioValue"​ con el valor "Hola mundo"
 +  * Línea 5: Se inyecta el ''​value''​ en el controlador
 +  * Línea 6: Se pone en valor de miServicioValue en la propiedad del ''​$scope.valor''​
 +
 +Si ejecutamos el ejemplo veremos en la página HTML el texto: ​
 +  El valor del value "​miServicioValue"​ = Hola mundo
 +  ​
 +===== Posibles valores =====
 +El servicio ''​value''​ puede tener a parte de valores escalares cualquier cosa como referencias a objetos, referencia a funciones, etc.
 +
 +===== Ejemplo =====
 +Veamos ahora un ejemplo de ''​value''​ con distintos valores.
 +
 +<sxh html;​title:​index.html>​
 +<​!DOCTYPE html>
 +<html ng-app="​app">​
 +
 +  <​head>​
 +    <script src="//​ajax.googleapis.com/​ajax/​libs/​angularjs/​1.2.19/​angular.min.js"></​script>​
 +    <script src="​script.js"></​script>​
 +  </​head>​
 +
 +  <body ng-controller="​PruebaController">​
 +    idioma = {{idioma}}
 +    <br>
 +    suma de 3 + 6 = {{suma}}
 +    <br>
 +    area = {{area}}
 +  </​body>​
 +</​html>​
 +</​sxh>​
 +
 +<sxh js;​title:​script.js;​highlight:​ [3,​5,​14,​16,​20,​21,​22,​23];>​
 +var app=angular.module("​app",​[]);​
 +
 +app.value("​idioma","​es-es"​);​
 +
 +app.value("​matematicas_simples",​{
 +  sumar:​function(a,​b) {
 +    return a+b;
 +  },
 +  restar:​function(a,​b) {
 +    return a-b;
 +  }
 +});
 +
 +app.value("​radio",​10);​
 +
 +app.value("​area",​function(radio) {
 +  return 3.1416*radio*radio;​
 +})
 +
 +app.controller("​PruebaController",​["​$scope","​idioma","​matematicas_simples","​radio","​area",​function($scope,​idioma,​matematicas_simples,​radio,​area) {
 +  $scope.idioma=idioma;​
 +  $scope.suma=matematicas_simples.sumar(3,​6);​
 +  $scope.area=area(radio);​
 +}]);
 +</​sxh>​
 +
 +  * Línea 2: Se crea una ''​value''​ cuyo valor es un String
 +  * Línea 5: Se crea una ''​value''​ cuyo valor es un Objeto con los métodos ''​sumar''​ y ''​restar''​
 +  * Linea 14: Se crea una ''​value''​ cuyo valor es un número
 +  * Línea 16: Se crea una ''​value''​ cuyo valor es una función.
 +  * Línea 20: Se inyectan todos los ''​value''​ en el controlador.
 +  * Línea 21: Se guarda el valor del ''​value''​ ''​idioma''​ en la propiedad ''​$scope.idioma''​.
 +  * Línea 22: Se guarda en ''​$scope.suma''​ el resultado de llamar al método ''​sumar''​ del objeto ''​matematicas_simples''​ que es el valor de dicho ''​value''​.
 +  * Línea 23: Como el valor del ''​value''​ es una función , llamamos directamente a la función pasándole como argumento el valor 10 del ''​value''​ ''​radio''​.
 +
 +<note tip>
 +Lo mas interesante es ver el ''​value''​ llamado ''​area''​ que es una función. Por lo tanto al obtener su valor lo llamamos como una función usando los parentesis: ''​area(radio)''​.
 +</​note>​
 +
 +{{url>​http://​embed.plnkr.co/​JQUTHe}}
 +
 +===== Diferencias con constant =====
 +Te habrás fijado que este tema es prácticamente el mismo que el de [[unidades:​03_servicios:​05_constant]],​ es decir que ha sido prácticamente cambiar ''​constant''​ por ''​value''​.
 +
 +¿Cuál es entonces la diferencia entre ellos? Que como ya hemos comentado en [[unidades:​03_servicios:​04_tiposservicios]] los servicio de tipo ''​constant''​ se pueden inyectar en [[unidades:​03_servicios:​04_tiposservicios#​bloque_configbloques]] ​ y en los [[unidades:​03_servicios:​09_provider]] mientras que los ''​value''​ no pueden.
 +
 +===== Referencias =====
 +  * [[https://​docs.angularjs.org/​guide/​providers#​value-recipe|/​ Developer Guide / Providers / Value]]
unidades/03_servicios/06_value.1406297139.txt.gz · Última modificación: 2014/07/25 16:05 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