Sök…


Anmärkningar

UPPERCASE din konstant : Att skriva konstant i kapital är en vanlig bästa praxis som används på många språk. Det är också användbart att tydligt identifiera typen av injicerade element:

När du ser .controller('MyController', function($scope, Profile, EVENT)) , vet du direkt att:

  • $scope är ett vinkellement
  • Profile är en anpassad tjänst eller fabrik
  • EVENT är en vinkelkonstant

Skapa din första konstant

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

Din konstant deklareras nu och kan injiceras i en controller, en tjänst, en fabrik, en leverantör och till och med i en konfigurationsmetod:

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

Använd fall

Det finns ingen revolution här, men vinkelkonstant kan vara användbar speciellt när din ansökan och / eller teamet börjar växa ... eller om du helt enkelt älskar att skriva vacker kod!


  • Refaktorkod. Exempel med händelsens namn. Om du använder många händelser i din applikation har du händelsens namn överallt. A när en ny utvecklare går med i ditt team, namnger han sina händelser med en annan syntax, ... Du kan lätt förhindra detta genom att gruppera ditt evenemangs namn i en konstant:

    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() {
          ...
        });
      })
    

... och nu kan namnen på ditt evenemang dra nytta av autofyllt!


  • Definiera konfiguration. Leta reda på all din konfiguration på samma plats:

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

  • Isolera delar. Ibland är det några saker du inte är så stolt över ... som till exempel hårdkodat värde. Istället för att lägga in dem i din huvudkod, kan du skapa en vinkelkonstant

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

... och refaktor något liknande

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

till

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow