我有一个使用 lodash 的 angular 4 应用程序。在阅读有关 angular 4 的信息时,大多数内容都通过依赖注入包含在内,以使测试更容易。
我是否需要担心将 DI 用于 lodash,如果是这样,我该如何为我的项目设置它?
是的,您应该使用 DI 使您的代码松散耦合。
在这种情况下,您应该创建下划线可注入依赖项。创建相同的OpaqueToken
会很有用。
common/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: _}
];
应用模块
//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 引入其中。