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
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow