AngularJS
Константы
Поиск…
замечания
ВЕРСИЯ Ваша постоянная : постоянная записи в капитале - это общая передовая практика, используемая на многих языках. Также полезно четко определить характер вводимых элементов:
Когда вы видите .controller('MyController', function($scope, Profile, EVENT))
, вы сразу же знаете, что:
-
$scope
- угловой элемент -
Profile
- это пользовательский сервис или завод -
EVENT
- угловая постоянная
Создайте свою первую константу
angular
.module('MyApp', [])
.constant('VERSION', 1.0);
Теперь ваша константа объявлена и может быть введена в контроллер, службу, фабрику, поставщика и даже в режиме конфигурации:
angular
.module('MyApp')
.controller('FooterController', function(VERSION) {
this.version = VERSION;
});
<footer ng-controller="FooterController as Footer">{{ Footer.version }}</footer>
Случаи применения
Здесь нет революции, но угловая константа может быть полезна специально, когда ваше приложение и / или команда начнет расти ... или если вы просто любите писать красивый код!
Код рефакторинга. Пример с именами событий. Если вы используете много событий в своем приложении, вы каждый раз называете имена событий. A, когда новый разработчик присоединяется к вашей команде, он называет свои события другим синтаксисом ... Вы можете легко предотвратить это, объединив имена вашего события в константе:
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() { ... }); })
... и теперь имена ваших событий могут воспользоваться преимуществами автозаполнения!
Определите конфигурацию. Найдите всю конфигурацию в одном месте:
angular .module('MyApp') .constant('CONFIG', { BASE_URL: { APP: 'http://localhost:3000', API: 'http://localhost:3001' }, STORAGE: 'S3', ... });
Изолировать детали. Иногда есть некоторые вещи, которые вы не очень гордитесь ... например, как жестко заданное значение. Вместо того, чтобы позволить им в вашем основном коде, вы можете создать угловую константу
angular .module('MyApp') .constant('HARDCODED', { KEY: 'KEY', RELATION: 'has_many', VAT: 19.6 });
... и реорганизовать что-то вроде
$scope.settings = {
username: Profile.username,
relation: 'has_many',
vat: 19.6
}
в
$scope.settings = {
username: Profile.username,
relation: HARDCODED.RELATION,
vat: HARDCODED.VAT
}