ES6 Aurelia依赖注射混乱

时间:2015-12-18 07:17:44

标签: javascript dependency-injection ecmascript-6 aurelia

根据我在博客上看到的内容,以下是您在Aurelia和ES6中进行DI的方式,但它不起作用。

diag.js:

export class Diag  {
  constructor(){
      this.test = `success`;
  }
}

testservice.js:

import {inject} from 'aurelia-framework';
import {Diag} from './diag';

@inject(Diag)
export class TestService{ 
  constructor(diag){
    console.log(diag);
  }
}

>undefined.

在控制台中我只得到'未定义'。但是,如果我在没有DI的情况下这样做,它可以正常工作:

import {Diag} from './diag';

export class TestService{ 
  constructor(){
    console.log(Diag);
  }
}

因此,如果我导入它没有DI它可以工作,但是一旦我尝试做DI,就像我在网上的例子中看到的那样,它告诉我该类是未定义的。我很困惑。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

确保使用依赖注入来获取TestService的实例。

import {inject} from 'aurelia-framework';
import {TestService} from './test-service';

@inject(TestService)
export class App { 
  constructor(service) {
    ...
  }
}