2016-10-23 5 views
0

모듈에 하나의 injection 문을 주입하면 작동합니다. 3 개의 inject 문을 모듈에 삽입하면 앱이로드되지 않습니다.오렐리아가 불일치를 주입합니까?

두 방법 모두 동등 할 것으로 예상됩니다.

import {AuthService} from 'aurelia-auth'; 
    import {bindable, inject, Aurelia} from 'aurelia-framework'; 
    import {ValidationControllerFactory, ValidationController, ValidationRules} from 'aurelia-validation'; 
    import {BootstrapFormRenderer} from './bootstrap-form-renderer'; 

    //Works 
    //@inject(Aurelia, AuthService, ValidationControllerFactory) 

    //Does not work 
    @inject(Aurelia) 
    @inject(AuthService) 
    @inject(ValidationControllerFactory) 

    export class Login { 
     constructor(aurelia, authService, controllerFactory) { 

답변

2

여러 통화량 inject 장식 원에 ' 데코레이터가 구현 된 방식으로 인해 작업이 중단됩니다. 인젝 테이터가하는 일은 클래스에 정적 인 inject() 함수를 만드는 것입니다. 따라서 주입 데코레이터를 여러 번 호출하면 정적 주입 속성을 계속 덮어 씁니다.

1

당신은 그렇게 여러를 분사에 대한 static inject()를 사용할 수 있습니다

export class SampleModel { 

    static inject() { return [DatabaseService, AuthService, EventAggregator]; } 

    constructor(db, auth, events){ 
     this.db = db; 
     this.auth = auth; 
     this.events = events; 
    } 
} 

당신은 아우렐 리아에서 의존성 주입에 대한 자세한 정보를 읽을 수 있습니다 속임수 똥 : http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/cheat-sheet/3

+0

감사합니다. 그렇기 때문에 여러 번 삽입하는 것은 이전 스타일입니다. 한 번 주사하는 것이 방법이라는 문서 링크가 있습니까? – Spiff

+0

자동 주입을 시도 했습니까? – Charleh

+0

Autoinject 문은 입력 코드 용입니다. – JayDi

관련 문제