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

  • Línea 3: Se crea la constante “miServicioConstante” con el valor “Hola mundo”
  • Línea 5: Se inyecta la constante en el controlador
  • Línea 6: Se pone en valor de la constante en la propiedad del $scope.valor

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

  • Línea 2: Se crea una constante cuyo valor es un String
  • Línea 5: Se crea una constante cuyo valor es un Objeto con los métodos sumar y restar
  • Linea 14: Se crea una constante cuyo valor es un número
  • Línea 16: Se crea una constante cuyo valor es una función.
  • Línea 20: Se inyectan todas las constantes en el controlador.
  • Línea 21: Se guarda el valor de la constante 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 dicha constante.
  • Línea 23: Como el valor de la constante es una función , llamamos directamente a la función pasandole como argumento el valor 10 de la constante 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

unidades/03_servicios/05_constant.txt · Última modificación: 2014/08/29 21:36 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