수색…


통사론

  • 상수 (이름, 값);
  • 값 (이름, 값);
  • 공장 (이름, $ getFn);
  • 서비스 (이름, 생성자);
  • 제공자 (이름, 제공자);

비고

제공자는 예를 들어 다른 서비스, 컨트롤러 및 지시문에 삽입 할 수있는 단일 객체입니다. 모든 공급자는 다른 "조리법"을 사용하여 등록됩니다. Provider 는 가장 유연한 Provider 입니다. 가능한 모든 요리법은 다음과 같습니다.

  • 일정한
  • 공장
  • 서비스
  • 공급자

서비스, ​​팩토리 및 프로 바이더는 모두 초기화가 지연되며, 애플리케이션이 애플리케이션에 의존하는 경우에만 구성 요소가 초기화됩니다.

Decorators 는 Providers와 밀접한 관련이 있습니다. 데코레이터는 서비스 또는 공장 생성을 가로 챌거나 동작을 바꾸기 위해 사용됩니다.

일정한

Constant 는 구성 및 실행 단계에서 모두 사용할 수 있습니다.

angular.module('app',[])
  .constant('endpoint', 'http://some.rest.endpoint') // define
  .config(function(endpoint) {
    // do something with endpoint
    // available in both config- and run phases
  }) 
  .controller('MainCtrl', function(endpoint) {       // inject
    var vm = this;
    vm.endpoint = endpoint;                          // usage
  });

<body ng-controller="MainCtrl as vm">
  <div>endpoint = {{ ::vm.endpoint }}</div>
</body>

끝점 = http : //some.rest.endpoint

Value 은 구성 및 실행 단계에서 모두 사용할 수 있습니다.

angular.module('app',[])
  .value('endpoint', 'http://some.rest.endpoint') // define
  .run(function(endpoint) {
    // do something with endpoint
    // only available in run phase
  }) 
  .controller('MainCtrl', function(endpoint) {    // inject
    var vm = this;
    vm.endpoint = endpoint;                       // usage
  }); 

<body ng-controller="MainCtrl as vm">
  <div>endpoint = {{ ::vm.endpoint }}</div>
</body>

끝점 = http : //some.rest.endpoint

공장

Factory 가동 단계에서 사용할 수 있습니다.

팩토리 제조법은 0 개 이상의 인수 (다른 서비스에 대한 종속성)가있는 함수를 사용하여 새 서비스를 생성합니다. 이 함수의 반환 값은이 래서 피에 의해 생성 된 서비스 인스턴스입니다.

팩토리는 프리미티브, 객체 리터럴, 함수 또는 사용자 정의 유형의 인스턴스 등 모든 유형의 서비스를 만들 수 있습니다.

angular.module('app',[])
  .factory('endpointFactory', function() {
    return {
      get: function() {
        return 'http://some.rest.endpoint';
      }
    };
  })
  .controller('MainCtrl', function(endpointFactory) {
    var vm = this;
    vm.endpoint = endpointFactory.get();
  });

<body ng-controller="MainCtrl as vm">
  <div>endpoint = {{::vm.endpoint }}</div>
</body>

끝점 = http : //some.rest.endpoint

서비스

Service 는 실행 단계에서 사용할 수 있습니다.

서비스 레서피는 값 또는 공장 레시피와 마찬가지로 서비스를 생성하지만 new 연산자로 생성자를 호출하여 수행 합니다. 생성자는이 유형의 인스턴스에 필요한 종속성을 나타내는 0 개 이상의 인수를 가질 수 있습니다.

angular.module('app',[])
  .service('endpointService', function() {
    this.get = function() {
      return 'http://some.rest.endpoint';
    };
  })
  .controller('MainCtrl', function(endpointService) {
    var vm = this;
    vm.endpoint = endpointService.get();
  });

<body ng-controller="MainCtrl as vm">
  <div>endpoint = {{::vm.endpoint }}</div>
</body>

끝점 = http : //some.rest.endpoint

공급자

Provider 는 구성 및 실행 단계에서 사용할 수 있습니다.

공급자 레시피는 구문 적으로 $get 메소드를 구현하는 사용자 정의 유형으로 정의됩니다.

애플리케이션을 시작하기 전에 만들어야하는 애플리케이션 전반의 구성을 위해 API를 공개하고자 할 때만 제공자 레시피를 사용해야합니다. 이는 대개 응용 프로그램간에 동작이 약간 다를 수있는 재사용 가능한 서비스에만 유용합니다.

angular.module('app',[])
  .provider('endpointProvider', function() {
    var uri = 'n/a';
    
    this.set = function(value) {
      uri = value;
    };

    this.$get = function() {
      return {
        get: function() {
          return uri;
        }
      };
    };
  })
  .config(function(endpointProviderProvider) {
    endpointProviderProvider.set('http://some.rest.endpoint');
  })   
  .controller('MainCtrl', function(endpointProvider) {
    var vm = this;
    vm.endpoint = endpointProvider.get();
  }); 

<body ng-controller="MainCtrl as vm">
  <div>endpoint = {{::vm.endpoint }}</div>
</body>

끝점 = http : //some.rest.endpoint

config 단계가 없으면 결과가

endpoint = n / a



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow