2016-11-25 9 views
0

У меня есть функция для определения текущей локали, и мне нужно установить локаль в угловом модуле App 2.0 через провайдера. так что я могу использовать это во всех других компонентах.Обнаружить локаль и установить ее на угловой 2 корневой модуль с помощью провайдера

Я знаю, что смогу сделать это, как показано ниже.

{обеспечивают: 'Locale', useValue: 'EN-US'}

Но я хочу сделать что-то вроде этого ниже, если это возможно.

{обеспечивают: 'Locale', useValue: this.detectLocale()}

В противном случае Пожалуйста, предложите любой подходящий способ для достижения этой цели. Благодарю.

ответ

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 
    } 
} 

и обеспечить одноплодной instanse вашего класса конфигурации:

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

Таким образом, вы можете поместить все ваши настройки и конфигурации в одном месте.

Также как я теперь вы не можете использовать string в качестве токена поставщика. Идентификаторы поставщика могут быть только типами классов.