ES6 Aurelia 依赖注入混淆

ES6 Aurelia dependency injection confusion

根据我在博客上读到的内容,这是在 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.

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

import {Diag} from './diag';

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

因此,如果我在没有 DI 的情况下导入它,它会起作用,但是一旦我尝试像我在在线示例中看到的那样进行 DI,它就会告诉我 class 未定义。我很困惑。有帮助吗?

确保您正在使用依赖注入来获取 TestService.

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

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