Поиск…


замечания

ВЕРСИЯ Ваша постоянная : постоянная записи в капитале - это общая передовая практика, используемая на многих языках. Также полезно четко определить характер вводимых элементов:

Когда вы видите .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
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow