【发布时间】:2015-11-05 17:57:51
【问题描述】:
我正在使用Angular2 build 2.0.0-alpha.34,但我不确定为什么这两段不同的代码会给我不同的结果。
唯一的区别是使用@Inject(TitleService) titleService 与使用titleService: TitleService
这可以正常工作(ES2015 方式)
import {Inject, Component, View, bootstrap, NgFor} from 'angular2/angular2';
import {titleComponent} from './components/title';
import {TitleService} from './services/services';
// Annotation section
@Component({
selector: 'my-app'
})
@View({
templateUrl: './html/app.html',
directives: [titleComponent, NgFor]
})
// Component controller
class MyAppComponent {
titles: Array<Object>;
constructor(@Inject(TitleService) titleService) {
console.log(titleService)
this.titles = titleService.getTitles();
}
}
bootstrap(MyAppComponent,[TitleService]);
这不起作用(TypeScript 方式),它永远不会在构造函数中调用 console.log,但它不会引发错误
import {Inject, Component, View, bootstrap, NgFor} from 'angular2/angular2';
import {titleComponent} from './components/title';
import {TitleService} from './services/services';
// Annotation section
@Component({
selector: 'my-app'
})
@View({
templateUrl: './html/app.html',
directives: [titleComponent, NgFor]
})
// Component controller
class MyAppComponent {
titles: Array<Object>;
constructor(titleService: TitleService) {
console.log(titleService)
this.titles = titleService.getTitles();
}
}
bootstrap(MyAppComponent,[TitleService]);
如果我使用 TypeScript 的方式进行注入,是否需要在其他地方做点别的事情?
【问题讨论】:
标签: angular typescript