如何在 NgModule 定义文件中的函数中注入 Location?
How to inject Location in function in NgModule definition file?
我有下一个代码
@NgModule({
imports: [
..
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
...
],
这是 createTranslateLoader 的实现
export function createTranslateLoader(http: HttpClient) {
let fullLocationPath = location.origin + location.pathname;
// I want to use angular location here.
return new TranslateHttpLoader(http, fullLocationPath + 'assets/languages/', '.json');
}
我该怎么做?我如何在 createTranslateLoader 函数中使用 angular 位置?
https://angular.io/api/common/Location
根据 documentation 如果你想使用它,你必须自己提供一个位置并指定 LocationStrategy
:
import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';
@NgModule({
imports: [
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient]
}
}),
...
],
providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
您可以通过以下 3 种定位策略中的任何一种:
- HashLocationStrategy
- 路径位置策略
- MockLocationStrategy
我有下一个代码
@NgModule({
imports: [
..
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
...
],
这是 createTranslateLoader 的实现
export function createTranslateLoader(http: HttpClient) {
let fullLocationPath = location.origin + location.pathname;
// I want to use angular location here.
return new TranslateHttpLoader(http, fullLocationPath + 'assets/languages/', '.json');
}
我该怎么做?我如何在 createTranslateLoader 函数中使用 angular 位置? https://angular.io/api/common/Location
根据 documentation 如果你想使用它,你必须自己提供一个位置并指定 LocationStrategy
:
import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';
@NgModule({
imports: [
...
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient]
}
}),
...
],
providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],
您可以通过以下 3 种定位策略中的任何一种:
- HashLocationStrategy
- 路径位置策略
- MockLocationStrategy