经过一天的搜索后发现我找不到任何东西!
我有一些方法(也可以说是服务)我已经在单独的文件中编写然后我必须在整个angular2应用程序中使用这些方法。我知道如果我们在bootstrap时导入该文件,我们就可以在整个应用程序中使用这些方法。但我的问题是,如果我有两个以上的全局文件。我是否必须导入每个组件的构造函数中的所有文件(需要哪些组件服务)?或者还有其他替代品吗?
例如我有一个名为GlobalService.ts的文件。
export clas xyz{
constructor(private base_path_service: GlobalService){
//stuff...
}
}
Q1: - 是否有任何替代方法可以避免每次在构造函数中初始化GlobalService?
Q2: - 服务注入时使用@injectable
和@inject
的好处是什么?
问题3: -
export clas xyz{
constructor(private base_path_service: GlobalService){
//stuff...
}
}
或
class xyz{
constructor(@Inject(GlobalService) GlobalService: globalService) {
//stuff....
}
}
哪一个最好,为什么?
答案 0 :(得分:0)
Q1:没有明智的选择。
Q2:必须将Unhandled rejection WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: dev.users.$name_1 dup key: { : \"ttp2\" }","op":{"user_url":"ttp2-0","salt":"LY59ooaz+8zZ4z8+dA/7dw==","provider":"local","name":"ttp2","email":"ttp2_1@example.com","password":"wEOc+pejEwfz/s11SWQiMpHxrkh7yLC+q+oa6Tad/QGvH+OFTBMAsVssBRvUKoRjE1dyJkZeh5UvCEJsgXAhNA==","_id":"56b5cc49b6bc872413f6c9fb","__v":0}})
添加到具有构造函数参数的服务中,否则Angulars DI无法创建实例。
@Injectable()
是多余的。有@Inject(GlobalService)
有用的特殊功能,如https://stackoverflow.com/a/35217704/217408
Q3:第一个例子。见Q2。