我有一个使用lodash的角度4应用程序。在阅读角度4时,通过依赖注入包含大多数所有内容,以使测试更容易。
我是否需要担心将DI用于lodash?如果是这样,我该如何为我的项目设置?
答案 0 :(得分:0)
是的,您应该使用DI来使代码松散耦合。
在这种情况下,您应该创建一个下划线注射依赖项。创建相同的OpaqueToken
会很有用。
<强>公共/ underscore.service.ts 强>
import { OpaqueToken } from '@angular/core'
declare let _: any ; //just typescript to consider _ API is available
export let UNDERSCORE = new OpaqueToken('UNDERSCORE');
export const loadDashProvider = [
{ provide: UNDERSCORE, useClass: _}
];
<强>的AppModule 强>
//imports here
declare let _: any ; //just typescript to consider _ API is available
@NgModule({
declarations: [...],
imports: [...],
providers: [
//... other dependecies ... ,
loadDashProvider
],
})
export class AppModule {
}
每当您想要访问_
js API时,您可以在类构造函数中使用UNDERSCORE
令牌,最终会在其中添加_
API。