AngularJS
costanti
Ricerca…
Osservazioni
MAIUSCUNTO la tua costante : la scrittura costante nel capitale è una pratica comune comune a molte lingue. È anche utile identificare chiaramente la natura degli elementi iniettati:
Quando vedi .controller('MyController', function($scope, Profile, EVENT))
, sai immediatamente che:
-
$scope
è un elemento angolare -
Profile
è un servizio o fabbrica personalizzato -
EVENT
è una costante angolare
Crea la tua prima costante
angular
.module('MyApp', [])
.constant('VERSION', 1.0);
La tua costante è ora dichiarata e può essere iniettata in un controller, un servizio, una fabbrica, un fornitore e anche in un metodo di configurazione:
angular
.module('MyApp')
.controller('FooterController', function(VERSION) {
this.version = VERSION;
});
<footer ng-controller="FooterController as Footer">{{ Footer.version }}</footer>
Casi d'uso
Non c'è nessuna rivoluzione qui, ma la costante angolare può essere utile specialmente quando la tua applicazione e / o il tuo team iniziano a crescere ... o se semplicemente ami scrivere codice bello!
Codice del refactore Esempio con i nomi degli eventi. Se usi molti eventi nella tua applicazione, i nomi degli eventi sono un po 'ovunque. A quando un nuovo sviluppatore si unisce alla tua squadra, nomina i suoi eventi con una sintassi diversa, ... Puoi facilmente evitarlo raggruppando i nomi degli eventi in una costante:
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() { ... }); })
... e ora i nomi del tuo evento possono trarre benefici dal completamento automatico!
Definire la configurazione. Trova tutta la tua configurazione nello stesso posto:
angular .module('MyApp') .constant('CONFIG', { BASE_URL: { APP: 'http://localhost:3000', API: 'http://localhost:3001' }, STORAGE: 'S3', ... });
Isolare le parti. A volte, ci sono alcune cose di cui non sei molto orgoglioso ... ad esempio il valore di hardcoded. Invece di lasciarli nel tuo codice principale, puoi creare una costante angolare
angular .module('MyApp') .constant('HARDCODED', { KEY: 'KEY', RELATION: 'has_many', VAT: 19.6 });
... e refactoring qualcosa di simile
$scope.settings = {
username: Profile.username,
relation: 'has_many',
vat: 19.6
}
a
$scope.settings = {
username: Profile.username,
relation: HARDCODED.RELATION,
vat: HARDCODED.VAT
}