Una constant
es un servicio al que le pasamos directamente el valor de dicho servicio. Su principal característica es que se puede inyectar en cualquier sitio. Se define llamando al método constant
de un módulo.A dicho método le pasaremos el nombre de la constante y su valor.
Veamos ahora un ejemplo de constant
.
<!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 de la constante "miServicioConstante" = {{valor}} </body> </html>
var app=angular.module("app",[]); app.constant("miServicioConstante","Hola mundo"); app.controller("PruebaController",["$scope","miServicioConstante",function($scope,miServicioConstante) { $scope.valor=miServicioConstante; }]);
$scope.valor
Si ejecutamos el ejemplo veremos en la página HTML el texto:
El valor de la constante "miServicioConstante" = Hola mundo
Al ser una constante parece que sólo pueda tener valores escalares pero puede tener cualquier cosa como referencias a objetos, referencia a funciones, etc.
Veamos ahora un ejemplo con distintos valores de constantes.
<!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>
var app=angular.module("app",[]); app.constant("idioma","es-es"); app.constant("matematicas_simples",{ sumar:function(a,b) { return a+b; }, restar:function(a,b) { return a-b; } }); app.constant("radio",10); app.constant("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); }]);
sumar
y restar
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 dicha constante.radio
.
area
que es una función. Por lo tanto al obtener su valor lo llamamos como una función usando los paréntesis: area(radio)
.