¡Esta es una revisión vieja del documento!
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 se 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 pasandole 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 temas es prácticamente el mismo que el de 3.5 constant, es decir que ha sido prácticamente cambiar constant
por value
.
¿cual 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.