AngularJS
Constantes
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
}