Buscar..


Observaciones

MAYÚSCULAS su constante : escribir constante en mayúsculas es una buena práctica común que se usa en muchos idiomas. También es útil identificar claramente la naturaleza de los elementos inyectados:

Cuando vea .controller('MyController', function($scope, Profile, EVENT)) , instantáneamente sabe que:

  • $scope es un elemento angular
  • Profile es un servicio personalizado o fábrica.
  • EVENT es una constante angular

Crea tu primera constante

angular
  .module('MyApp', [])
  .constant('VERSION', 1.0);

Su constante ahora está declarada y se puede inyectar en un controlador, un servicio, una fábrica, un proveedor e incluso en un método de configuración:

angular
  .module('MyApp')
  .controller('FooterController', function(VERSION) {
    this.version = VERSION;
  });
<footer ng-controller="FooterController as Footer">{{ Footer.version }}</footer>

Casos de uso

No hay revolución aquí, pero la constante angular puede ser útil especialmente cuando tu aplicación y / o equipo comienza a crecer ... ¡o si simplemente te encanta escribir código hermoso!


  • Código refactor. Ejemplo con los nombres de los eventos. Si utiliza muchos eventos en su aplicación, tiene los nombres de los eventos un poco en todas partes. A cuando un nuevo desarrollador se une a su equipo, nombra sus eventos con una sintaxis diferente, ... Puede evitar esto fácilmente agrupando los nombres de sus eventos en una constante:

    angular
      .module('MyApp')
      .constant('EVENTS', {
        LOGIN_VALIDATE_FORM: 'login::click-validate',
        LOGIN_FORGOT_PASSWORD: 'login::click-forgot',
        LOGIN_ERROR: 'login::notify-error',
        ...
      });
    
    angular
      .module('MyApp')
      .controller('LoginController', function($scope, EVENT) {
        $scope.$on(EVENT.LOGIN_VALIDATE_FORM, function() {
          ...
        });
      })
    

... y ahora, los nombres de su evento pueden beneficiarse del autocompletado!


  • Definir la configuración. Localiza toda tu configuración en un mismo lugar:

    angular
      .module('MyApp')
      .constant('CONFIG', {
        BASE_URL: {
          APP: 'http://localhost:3000',
          API: 'http://localhost:3001'
        },
        STORAGE: 'S3',
        ...
      });
    

  • Aislar las piezas. A veces, hay algunas cosas de las que no estás muy orgulloso ... como el valor codificado, por ejemplo. En lugar de dejarlos en su código principal, puede crear una constante angular

    angular
      .module('MyApp')
      .constant('HARDCODED', {
        KEY: 'KEY',
        RELATION: 'has_many',
        VAT: 19.6
      });
    

... y refactorizar algo como

$scope.settings = {
  username: Profile.username,
  relation: 'has_many',
  vat: 19.6
}

a

$scope.settings = {
  username: Profile.username,
  relation: HARDCODED.RELATION,
  vat: HARDCODED.VAT
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow