0

現在のロケールを検出する機能があり、プロバイダーを介してAngular 2ルートアプリモジュールでロケールを設定する必要があります。他のすべてのコンポーネントでそれを使用できるようにします。

私は以下のようにこれを行うことができることを知っています。

{ provide: 'Locale', useValue: 'en-US' }

しかし、可能であれば以下のようなことをしたいです。

{ provide: 'Locale', useValue: this.detectLocale() }

そうでなければ、これを達成するための適切な方法を提案してください。ありがとう。

4

1 に答える 1

1

AppConfig構成やその他の定数値を格納するプロバイダーがあると、アプリで役立つ場合があります。

import { Injectable } from "@angular/core"

@Injectable()
export class AppConfig()
{
   public endPointUrl: string; // sample configuration value
   public local: string;

   constructor(){
       this.endpointUrl = "";
       this.local = ""; // use detect local logic here
   }
}

構成クラスのシングルトン インスタンスを提供します。

{provide: AppConfig, useValue: new AppConfig()}

このようにして、すべての設定と構成を 1 か所にまとめることができます。

また、今ではstrings をプロバイダー トークンとして使用することはできません。プロバイダ トークンは、クラス タイプのみにすることができます。

于 2016-11-25T11:57:05.037 に答える