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
.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!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 > |
1 2 3 4 5 6 7 | var app=angular.module( "app" ,[]); app.value( "miServicioValue" , "Hola mundo" ); app.controller( "PruebaController" ,[ "$scope" , "miServicioValue" , function ($scope,miServicioValue) { $scope.valor=miServicioValue; }]); |
value
“miServicioValue” con el valor “Hola mundo”value
en el controlador$scope.valor
Si ejecutamos el ejemplo veremos en la página HTML el texto:
El valor del value "miServicioValue" = Hola mundo
El servicio value
puede tener a parte de valores escalares cualquier cosa como referencias a objetos, referencia a funciones, etc.
Veamos ahora un ejemplo de value
con distintos valores.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!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 > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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); }]); |
value
cuyo valor es un Stringvalue
cuyo valor es un Objeto con los métodos sumar
y restar
value
cuyo valor es un númerovalue
cuyo valor es una función.value
en el controlador.value
idioma
en la propiedad $scope.idioma
.$scope.suma
el resultado de llamar al método sumar
del objeto matematicas_simples
que es el valor de dicho value
.value
es una función , llamamos directamente a la función pasándole como argumento el valor 10 del value
radio
.
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)
.
Te habrás fijado que este tema es prácticamente el mismo que el de 3.5 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 3.4 Tipos de servicios los servicio de tipo constant
se pueden inyectar en bloque_configbloques y en los 3.9 provider mientras que los value
no pueden.