【发布时间】:2015-12-18 07:17:44
【问题描述】:
根据我在博客上阅读的内容,这是您在 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,它会告诉我该类是未定义的。我很困惑。有什么帮助吗?
【问题讨论】:
-
对我来说它工作正常,但我正在使用带有
@autoinject的 TypeScript。也许它与转译器有关?另外,您使用的是最新的 aurelia 版本(测试版)吗? -
迈克说得好。我正在使用 Beta 1。昨天他们刚刚发布了 beta 2,我应该下载它。我只是担心 Beta 2 中的某些内容可能会破坏我的 Beta 1 代码,然后我会有更多问题需要调试。我想我作为一名 MS 开发人员多年来一直很偏执。哈哈
-
更正 - 昨天只是一个补丁版本,不是 Beta 2。
-
我做了一个 jspm 更新,一切都变得清晰起来。现在一切都很好。 :-)
标签: javascript dependency-injection ecmascript-6 aurelia