首页 文章

Angular 2依赖注入

提问于
浏览
1

我已经阅读了几篇关于依赖注入的文章,似乎无法让它按照我认为应该的方式运行 . 根据我的阅读,您可以在类上使用@Injectable装饰器,然后为DI创建元数据,如下所示:

import {Hero} from './hero.model';
import {Injectable} from 'angular2/angular2'

@Injectable()
export class HeroService {
    constructor() {
        console.log('Hero Service Created');
    }
}

然后在您的组件中,您可以在构造函数中使用它(具有正确的导入),如下所示:

constructor(heroService: HeroService) {
    console.log('App Component Created');
}

但是,我收到以下错误:无法解析AppComponent(?)的所有参数 . 确保它们都具有有效的类型或注释 .

如果我从服务中删除@Injectable语法,而是让我的构造函数如下,我能够正常工作:

constructor(@Inject(HeroService) heroService: HeroService) {
    console.log('App Component Created');
}

对于我读过的所有内容,这些应该做同样的事情,但事实并非如此 . 任何想法为什么?我使用的是带有VS 2013的Typescript 1.6.2,angular 2 v2.0.0-alpha.46和systemjs v0.19.5 .

1 回答

  • 2

    确保在TypeScript配置中指定了“emitDecoratorMetadata”选项 .

相关问题