用例

这里没有革命,但角度常数特别适用于你的应用程序和/或团队开始成长……或者你只是喜欢编写漂亮的代码!

  • **重构代码。**事件名称的示例。如果你在应用程序中使用了大量事件,那么每个地方都会有一些事件名称。当一个新的开发者加入你的团队时,他用不同的语法命名他的事件……你可以通过将事件的名称分组为常量来轻松防止这种情况:

    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
}