Ewa*_*der 3 service dependency-injection angular
我有一个单独的LocalizationModule
包含LocaleService
它的defaultLanguage
依赖项:
import { Injectable } from '@angular/core';
@Injectable()
export class LocaleService {
constructor(defaultLanguage: string) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
所以现在我必须提供工厂来在注入器尝试解决它时创建此依赖项:
let localeServiceFactory = () => {
return new LocaleService('en-US');
};
export let localeServiceProvider = {
provide: LocaleService,
useFactory: localeServiceFactory
};
Run Code Online (Sandbox Code Playgroud)
我在我的LocalizationModule
:
import { NgModule } from '@angular/core';
@NgModule({
providers: [
i18nServiceProvider
]
})
export class LocalizationModule { }
Run Code Online (Sandbox Code Playgroud)
这被捆绑为一个库并打包到 npm 注册表中。现在我想在我的许多应用程序中使用这个模块,但我必须能够配置默认语言。如何使用我自己的提供程序覆盖 i18nServiceProvider?
AppModule
直接添加到的提供程序始终覆盖导入模块中的提供程序。
@NgModule({
imports: [LocalizationModule],
providers: [localeServiceProvider],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3769 次 |
最近记录: |