AngularJS
Stałe
Szukaj…
Uwagi
ULEPSZAJ swoją stałą : Pisanie stałej w formie kapitału jest powszechną najlepszą praktyką stosowaną w wielu językach. Przydatne jest także wyraźne określenie charakteru wstrzykiwanych elementów:
Kiedy zobaczysz .controller('MyController', function($scope, Profile, EVENT))
, natychmiast wiesz, że:
-
$scope
jest elementem kątowym -
Profile
to niestandardowa usługa lub fabryka -
EVENT
jest stałą kątową
Utwórz pierwszą stałą
angular
.module('MyApp', [])
.constant('VERSION', 1.0);
Twoja stała jest teraz zadeklarowana i może zostać wstrzyknięta do kontrolera, usługi, fabryki, dostawcy, a nawet do metody konfiguracji:
angular
.module('MyApp')
.controller('FooterController', function(VERSION) {
this.version = VERSION;
});
<footer ng-controller="FooterController as Footer">{{ Footer.version }}</footer>
Przypadków użycia
Nie ma tu rewolucji, ale stała kątowa może być użyteczna szczególnie, gdy twoja aplikacja i / lub zespół zaczynają się rozwijać ... lub jeśli po prostu lubisz pisać piękny kod!
Kod refaktora. Przykład z nazwami wydarzeń. Jeśli używasz wielu zdarzeń w swojej aplikacji, masz nazwy wydarzeń trochę w każdym miejscu. Kiedy nowy programista dołącza do twojego zespołu, nazywa swoje wydarzenia inną składnią ... Możesz łatwo temu zapobiec, grupując nazwy swoich wydarzeń w stałej:
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() { ... }); })
... a teraz nazwy wydarzeń mogą czerpać korzyści z autouzupełniania!
Zdefiniuj konfigurację. Znajdź całą konfigurację w tym samym miejscu:
angular .module('MyApp') .constant('CONFIG', { BASE_URL: { APP: 'http://localhost:3000', API: 'http://localhost:3001' }, STORAGE: 'S3', ... });
Izoluj części. Czasami są rzeczy, z których nie jesteś bardzo dumny ... na przykład wartość na stałe. Zamiast wpuszczać je do głównego kodu, możesz utworzyć stałą kątową
angular .module('MyApp') .constant('HARDCODED', { KEY: 'KEY', RELATION: 'has_many', VAT: 19.6 });
... i refaktoryzuj coś takiego
$scope.settings = {
username: Profile.username,
relation: 'has_many',
vat: 19.6
}
do
$scope.settings = {
username: Profile.username,
relation: HARDCODED.RELATION,
vat: HARDCODED.VAT
}