仅供参考:使用angular2(2.0.0-alpha.45)& TypeScript(1.6.2)
尝试创建一个简单的服务以注入组件。
我得到的错误:
无法解析{ComponentName}(?)的所有参数。确保它们都有有效的类型或注释。
自举:
bootstrap(App, [ROUTER_PROVIDERS, HTTP_PROVIDERS]);
服务(my-service.ts):
import {Injectable} from 'angular2/angular2';
@Injectable()
export class MyService {
public doSomething() {}
}
消费组件:
import {Component} from 'angular2/angular2';
import {MyService} from './my-service';
export class ListManager{
constructor(private myService: MyService){
console.log('myService', myService);
}
}
我尝试过的事情
@Injectable
MyService
添加/删除到提供商的引导列表@Component({providers: [MyService]})
@Component({bindings: [MyService]})
答案 0 :(得分:2)
我想你会这样做:
constructor(private myService: MyService){
console.log('myService', myService);
}
您还必须在@Component定义
中将服务指定为提供者@Component({
...
providers: [MyService]})
答案 1 :(得分:0)
尝试在您的组件中执行此操作:
import {Component} from 'angular2/angular2';
import {Inject} from 'angular2/core';
import {MyService} from './my-service';
export class ListManager{
private listService: ListService;
constructor(@Inject(ListService) listService: ListService){
console.log('listService', listService);
}
}
(注意构造函数中的新导入和@Inject
)
让我知道它是否适合你。一个plunker也将帮助隔离问题。