我有一个组件使用的可注射服务。
@Injectable()
export class SomeService {
constructor(private http: Http){}
...
}
与此同时,我正在尝试在打字稿中编写一个实用程序应用程序(控制台应用程序来查看数据)。
class SomeConsoleApp{
constructor(svc:SomeService){}
...
run(){
console.log('test');
}
}
var svc = new SomeService(???);
var app = new SomeConsoleApp(svc);
app.run();
我的问题是,在初始化SomeService
时如何初始化Http参数。 angular2 Http有两个参数 - ConnectionBackend和RequestOptions。有点像穷人的依赖注射。
答案 0 :(得分:0)
如果要在Angular应用程序之外使用根注入器,则在引导模块时需要对其进行引用。
platformBrowserDynamic().bootstrapModule(AppModule).then((moduleRef: NgModuleRef<any>) => {
someGlobalObject = moduleRef.injector;
});
然后,您可以使用注入器创建具有所有依赖项的新服务:
var svc = someGlobalObject.inject("SomeService");
注意:这只有在您的控制台应用程序和Angular应用程序在同一个执行上下文(同一页面)内运行时才有效。