2017-09-21 4 views
1

私は次のコードを持っているNgModule定義ファイルに関数の場所を挿入するには?

@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関数でどのように角度位置を使用できますか? https://angular.io/api/common/Location

答えて

1

あなたはそれを使用してもLocationStrategyを指定する場合documentationあなたは場所を自分で提供する必要がありによると:

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箇所戦略のいずれかを渡すことができます。

  • ハッシュロケーションストラテジー
  • PathLocationStrategy
  • MockLocatイオンストラテジー
関連する問題