AngularJS
Konstanter anter~~POS=HEADCOMP
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
}