2016-08-18 1 views
0

내 응용 프로그램의 여러 위치에서 EventAggregator를 사용하고 모든 것이 잘 작동합니다. 그러나 나는 그것을 내 수업의에 주입하는 데 어려움을 겪고있다. 클래스 생성자가 호출되면 EventAggregator 인수는 정의되지 않습니다. Aurelia의 EventAggregator를 특정 클래스에 주입하는 데 문제가 있음

import {EventAggregator} from 'aurelia-event-aggregator'; import {inject} from 'aurelia-framework'; @inject(EventAggregator) export class Test { constructor(eventAggregator) { debugger; this.eventAggregator = eventAggregator; } } 

debugger; 줄에서 중지, 생성자의 eventAggregator 인수는 정의되지 않습니다.

다른 많은 클래스에서 EventAggregator를 사용하는 것처럼 보이므로 문제가 될 수 있습니까?

+0

jspm을 사용하고 있습니까? 그렇다면'jspm inspect --forks'는 무엇을 반환합니까? 브레이크 포인트에서'EventAggregator'의 값은 무엇입니까? –

+0

@JeremyDanyow 다음을 반환합니다 : 설치된 포크 npm : aurelia-event-aggregator 1.0.0-beta.1.2.0 1.0.0-beta.1.2.1 npm : aurelia-logging 1.0.0-beta.1.2.0 1.0.0-beta.1.2.1 –

+0

@JeremyDanyow EventAggregator의 값은 function EventAggregator() {....}이지만 eventAggregator 인수는 정의되지 않습니다. –

답변

1

나는 이것이 포크 (설치된 동일한 패키지의 여러 버전)와 관련이 있다고 생각합니다.

  1. 이 문제를 해결하려면 config.js 파일을 열고 map: { 노드 내부의 모든 내용을 삭제하십시오. 예 : all this.
  2. 그런 다음 jspm install을 실행하십시오.
  3. 그런 다음 포크를 다시 확인하십시오. 당신은 여전히 ​​포크가있는 경우 jspm inspect --forks
  4. , each aurelia item listed in your package.json

에 대한 jspm install aurelia-_______을 실행 fact- 당신이 당신이 지금 1.0.0 인 최신을 얻을 수 있도록한다 4- 단계로 권리를 생략 할 수 있습니다 (RTM) 아우렐 리아 버전.

+1

Aurelia 1.0으로 업그레이드하여 업그레이드했지만 문제가 해결되지 않았습니다. EventAggregator를 추가 한 클래스에서 new()를 호출하고있는 것으로 나타났습니다. 따라서 클래스의 생성자가 호출 될 때 eventAggregator 매개 변수가 전달되지 않았으므로 물론 정의되지 않았습니다. –

+0

아 - 그럴 것입니다! 적어도 업그레이드되었고 포크는 정리되었습니다. –

+0

이제 new()를 호출 할 때 소비자가 삽입 된 클래스에 액세스 할 수 없기 때문에 종속성 삽입을 싱글 톤이 아닌 클래스에서 어떻게 사용합니까? 기본 인수를 사용 하시겠습니까? –

관련 문제