我正在为 angular2 的依赖注入而苦苦挣扎。在我的示例中,我有两个服务。
- Service1 注入 Service2 并从中获取数据。
- 一个组件注入 Service1 并从 Service1 获取数据
我必须在我的组件中提供 Service2
@Component({
providers: [Service1, Service2]
})
但为什么?我在Service1中注入了Service2。当我的组件中没有对 Service2 的引用时,为什么我必须在我的组件中提供 Service2?
我知道,我可以在我的 bootsrap 函数中提供服务,但我想为我的组件提供我的服务......
bootstrap(AppComponent, [... Service1, Service2])
这是我的示例代码,由于缺少提供程序而无法正常工作
组件.ts
import {Service1} from "service1.ts";
@Component({
providers: [Service1]
})
export class Component{
constructor(private s: Service1) {
//get data from Service1
}
}
服务1.ts
import {Service2} from "service2.ts";
@Injectable()
export class service1{
constructor(private s2: Service2) {
//get data from service2
//edit data
//return data
}
}
服务2.ts
@Injectable()
export class service2{
constructor() {
//return data
}
}