Tabla de Contenidos

3.5 constant

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;  
}]);

Si ejecutamos el ejemplo veremos en la página HTML el texto:

El valor de la constante "miServicioConstante" = Hola mundo

Posibles valores

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.

Ejemplo

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);
}]);

Lo más interesante es ver la constante llamada 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).

Referencias