Ember CLI를 사용하여 Ember에서 종속성 주입을 수행하는 방법은 무엇입니까?

마크 프랑수아

먼저 Ember CLI없이 작은 Ember 앱을 만들었습니다.

이 코드가 있습니다.

window.MyApp = Ember.Application.create({
  ready: function() {
    this.register('session:current', MyApp.SessionController, { singleton: true });
    this.inject('controller', 'session', 'session:current');
  }
});

이것은 효과가 있었다.

그런 다음 Ember CLI로 모든 것을 처음부터 다시 작성하기로 결정했습니다.

이전 버전과 마찬가지로 파일을 편집하고 후크를 app/app.js추가했습니다 ready.

var App = Ember.Application.extend({
  modulePrefix: config.modulePrefix,
  podModulePrefix: config.podModulePrefix,
  Resolver: Resolver,
  ready: function() {
    this.register('session:current', App.SessionController, { singleton: true });
    this.inject('controller', 'session', 'session:current');
  }
});

이것은 작동하지 않습니다.

세션 컨트롤러가 존재합니다. 이것이 파일의 내용입니다.app/controllers/session.js

export default Ember.Controller.extend({
  isLoggedIn: false,
});

내가 얻는 오류 메시지는

TypeError: Attempting to register an unknown factory: `session:current`

브라우저에 나타납니다.

그 메시지를 검색했지만 Ember CLI에서 종속성 주입에 대해 아무것도 찾지 못했습니다.

어떤 생각?

ember-cli 에서이를 달성하기 위해 스텁을 사용 ember generate service <name of service>하고 ember generate initializer <name of initializer>빌드 할 수 있습니다 . 이는 app.js.

기본적으로 다음과 같은 서비스를 만듭니다.

// app/services/notifications.js
import Ember from 'ember';

export default Ember.Object.extend({
  initNotifications: function() {
     // setup comes here
  }.on('init'),

  // Implementation snipped, not relevant to the answer.
});

그리고 서비스를 필요로하는 애플리케이션의 컴포넌트에 서비스를 주입하는 이니셜 라이저 :

// app/initializers/notifications-service.js
import Notifications from '../services/notifications';

export default {
  name: 'notification-service',
  after: 'auth-service',

  initialize: function( container, app ) {
    app.register( 'notifications:main', Notifications, { singleton: true } );
    app.inject( 'component:system-notifications', 'notificationService', 'service:notifications' );
    app.inject( 'service:auth', 'notificationService', 'service:notifications' );
  }
};

이를 통해 notificationService지정된 구성 요소에서 사용할 수 있습니다 .

Ember의 종속성 주입 주제에 대한 문서는 http://emberjs.com/guides/understanding-ember/dependency-injection-and-service-lookup/ 에서 찾을 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

종속성 주입을 사용하여 모듈에 개체를 주입하는 방법은 무엇입니까?

분류에서Dev

ember-cli 앱에서 양식 유효성 검사를 구현하는 방법은 무엇입니까?

분류에서Dev

점이있는 속성에 Ember의 게터 / 세터를 사용하는 방법은 무엇입니까?

분류에서Dev

Ember의 모든 컨트롤러에 계산 된 속성을 주입하는 방법은 무엇입니까?

분류에서Dev

Ember의 모든 컨트롤러에 계산 된 속성을 주입하는 방법은 무엇입니까?

분류에서Dev

Ninject를 사용하여 재사용 가능한 DLL에서 계층 별 종속성 주입을 처리하는 방법은 무엇입니까?

분류에서Dev

ember-cli의 핸들 바에서 클래스 변수를 반복하는 방법은 무엇입니까?

분류에서Dev

ember-cli의 핸들 바에서 클래스 변수를 반복하는 방법은 무엇입니까?

분류에서Dev

클래스 서블릿에서 종속성 주입을 수행하는 방법은 무엇입니까?

분류에서Dev

C ++ 파생 클래스에서 종속성 주입을 수행하는 방법은 무엇입니까?

분류에서Dev

Ember CLI 앱에서 핸들 바를 htmlbar로 교체하는 방법은 무엇입니까?

분류에서Dev

Ember CLI로 맞춤형 Express 서버를 사용하는 방법은 무엇입니까?

분류에서Dev

ember.js-다른 경로에서 두 구성 요소를 연결하는 방법은 무엇입니까?

분류에서Dev

ember-cli-mirage에서 개체를 만드는 방법은 무엇입니까?

분류에서Dev

ember-cli에서 생성하고 제공하는 Javascript-Code를 디버깅하는 방법은 무엇입니까?

분류에서Dev

Ember에서 템플릿을 변경할 때 JQuery 코드를 실행하는 방법은 무엇입니까?

분류에서Dev

typescript에서 종속성 주입을 사용하는 방법은 무엇입니까?

분류에서Dev

Spring Boot Unit Testing에서 종속성 주입을 사용하는 방법은 무엇입니까?

분류에서Dev

Java EE 6 (WebSphere 8.5)에서 Spring의 종속성 주입을 사용하는 방법은 무엇입니까?

분류에서Dev

클래스에서 종속성 주입을 사용하는 방법은 무엇입니까?

분류에서Dev

Android에서 종속성 무지를 피하는 방법은 무엇입니까?

분류에서Dev

ppa에서 종속성으로 pbuilder-dist 빌드를 수행하는 방법은 무엇입니까?

분류에서Dev

ppa에서 종속성으로 pbuilder-dist 빌드를 수행하는 방법은 무엇입니까?

분류에서Dev

스토리 보드를 사용하여 사용자 컨트롤 종속성 속성에 애니메이션을 적용하는 방법은 무엇입니까?

분류에서Dev

HostBuilder를 통해 종속성 주입에 매개 변수를 추가하는 방법은 무엇입니까?

분류에서Dev

MS.DI 및 .NET Core를 사용하여 정적 메서드에서 종속성 주입으로 리팩터링하는 방법은 무엇입니까?

분류에서Dev

커스텀 서버에서 ember-cli를 사용하고 Heroku에 배포하는 방법은 무엇입니까?

분류에서Dev

Symfony 구성 요소를 사용하여 사용자 정의 유효성 검사기에 대한 종속성을 구성하는 방법은 무엇입니까?

분류에서Dev

ember-cli-materialize에서 2 차 및 강조 색상을 정의하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    종속성 주입을 사용하여 모듈에 개체를 주입하는 방법은 무엇입니까?

  2. 2

    ember-cli 앱에서 양식 유효성 검사를 구현하는 방법은 무엇입니까?

  3. 3

    점이있는 속성에 Ember의 게터 / 세터를 사용하는 방법은 무엇입니까?

  4. 4

    Ember의 모든 컨트롤러에 계산 된 속성을 주입하는 방법은 무엇입니까?

  5. 5

    Ember의 모든 컨트롤러에 계산 된 속성을 주입하는 방법은 무엇입니까?

  6. 6

    Ninject를 사용하여 재사용 가능한 DLL에서 계층 별 종속성 주입을 처리하는 방법은 무엇입니까?

  7. 7

    ember-cli의 핸들 바에서 클래스 변수를 반복하는 방법은 무엇입니까?

  8. 8

    ember-cli의 핸들 바에서 클래스 변수를 반복하는 방법은 무엇입니까?

  9. 9

    클래스 서블릿에서 종속성 주입을 수행하는 방법은 무엇입니까?

  10. 10

    C ++ 파생 클래스에서 종속성 주입을 수행하는 방법은 무엇입니까?

  11. 11

    Ember CLI 앱에서 핸들 바를 htmlbar로 교체하는 방법은 무엇입니까?

  12. 12

    Ember CLI로 맞춤형 Express 서버를 사용하는 방법은 무엇입니까?

  13. 13

    ember.js-다른 경로에서 두 구성 요소를 연결하는 방법은 무엇입니까?

  14. 14

    ember-cli-mirage에서 개체를 만드는 방법은 무엇입니까?

  15. 15

    ember-cli에서 생성하고 제공하는 Javascript-Code를 디버깅하는 방법은 무엇입니까?

  16. 16

    Ember에서 템플릿을 변경할 때 JQuery 코드를 실행하는 방법은 무엇입니까?

  17. 17

    typescript에서 종속성 주입을 사용하는 방법은 무엇입니까?

  18. 18

    Spring Boot Unit Testing에서 종속성 주입을 사용하는 방법은 무엇입니까?

  19. 19

    Java EE 6 (WebSphere 8.5)에서 Spring의 종속성 주입을 사용하는 방법은 무엇입니까?

  20. 20

    클래스에서 종속성 주입을 사용하는 방법은 무엇입니까?

  21. 21

    Android에서 종속성 무지를 피하는 방법은 무엇입니까?

  22. 22

    ppa에서 종속성으로 pbuilder-dist 빌드를 수행하는 방법은 무엇입니까?

  23. 23

    ppa에서 종속성으로 pbuilder-dist 빌드를 수행하는 방법은 무엇입니까?

  24. 24

    스토리 보드를 사용하여 사용자 컨트롤 종속성 속성에 애니메이션을 적용하는 방법은 무엇입니까?

  25. 25

    HostBuilder를 통해 종속성 주입에 매개 변수를 추가하는 방법은 무엇입니까?

  26. 26

    MS.DI 및 .NET Core를 사용하여 정적 메서드에서 종속성 주입으로 리팩터링하는 방법은 무엇입니까?

  27. 27

    커스텀 서버에서 ember-cli를 사용하고 Heroku에 배포하는 방법은 무엇입니까?

  28. 28

    Symfony 구성 요소를 사용하여 사용자 정의 유효성 검사기에 대한 종속성을 구성하는 방법은 무엇입니까?

  29. 29

    ember-cli-materialize에서 2 차 및 강조 색상을 정의하는 방법은 무엇입니까?

뜨겁다태그

보관