AngularJS
Les constantes
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
}