Recherche…


Remarques

UPPERCASE votre constante : Ecrire constante dans le capital est une meilleure pratique courante utilisée dans de nombreuses langues. Il est également utile d'identifier clairement la nature des éléments injectés:

Lorsque vous voyez .controller('MyController', function($scope, Profile, EVENT)) , vous savez instantanément que:

  • $scope est un élément angulaire
  • Profile est un service personnalisé ou une usine
  • EVENT est une constante angulaire

Créez votre première constante

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

Votre constante est maintenant déclarée et peut être injectée dans un contrôleur, un service, une usine, un fournisseur et même dans une méthode de configuration:

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

Cas d'utilisation

Il n'y a pas de révolution ici, mais la constante angulaire peut être utile spécialement lorsque votre application et / ou votre équipe commencent à se développer ... ou si vous aimez simplement écrire de beaux codes!


  • Code refactor. Exemple avec les noms d'événement. Si vous utilisez beaucoup d'événements dans votre application, vous avez un peu partout les noms des événements. Quand un nouveau développeur rejoint votre équipe, il nomme ses événements avec une syntaxe différente, ... Vous pouvez facilement empêcher cela en regroupant les noms de vos événements dans une 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() {
          ...
        });
      })
    

... et maintenant, les noms de vos événements peuvent bénéficier de l'autocomplétion!


  • Définir la configuration Localisez toutes vos configurations au même endroit:

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

  • Isoler les pièces. Parfois, il y a des choses dont vous n'êtes pas très fier ... comme la valeur codée par exemple. Au lieu de les laisser dans votre code principal, vous pouvez créer une constante angulaire

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

... et refactor quelque chose comme

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

à

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow