Skip to content

Commit

Permalink
fix(module: locale-provider): make locale-provider available cross mo…
Browse files Browse the repository at this point in the history
…dules; (NG-ZORRO#113)
  • Loading branch information
fisherspy committed Nov 19, 2018
1 parent 722ee27 commit e09f0a3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
4 changes: 2 additions & 2 deletions components/locale-provider/locale-provider.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { NgModule } from '@angular/core';
import zh_CN from './languages/zh_CN';
import { LocaleProviderPipe } from './locale-provider.pipe';
import { LOCAL_PROVIDER_TOKEN } from './locale-provider.token';
import { LocaleProviderService } from './locale-provider.service';
import { LOCALE_PROVIDER_SERVICE_PROVIDER } from './locale-provider.service';

@NgModule({
imports: [],
declarations: [LocaleProviderPipe],
exports: [LocaleProviderPipe],
providers: [{ provide: LOCAL_PROVIDER_TOKEN, useValue: zh_CN }, LocaleProviderService]
providers: [{ provide: LOCAL_PROVIDER_TOKEN, useValue: zh_CN }, LOCALE_PROVIDER_SERVICE_PROVIDER]
})
export class LocaleProviderModule {}
12 changes: 11 additions & 1 deletion components/locale-provider/locale-provider.service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Inject, Injectable } from '@angular/core';
import { Inject, Injectable, Provider, Optional, SkipSelf } from '@angular/core';
import { LOCAL_PROVIDER_TOKEN } from './locale-provider.token';
import { BehaviorSubject, Observable } from 'rxjs';
import zh_CN from './languages/zh_CN';
Expand Down Expand Up @@ -59,3 +59,13 @@ export class LocaleProviderService {
return index === depth ? res : null;
}
}

export function LOCALE_PROVIDER_SERVICE_FACTORY(exist: LocaleProviderService, locale: any): LocaleProviderService {
return exist || new LocaleProviderService(locale);
}

export const LOCALE_PROVIDER_SERVICE_PROVIDER: Provider = {
provide : LocaleProviderService,
useFactory: LOCALE_PROVIDER_SERVICE_FACTORY,
deps : [ [ new Optional(), new SkipSelf(), LocaleProviderService ], LOCAL_PROVIDER_TOKEN]
};

0 comments on commit e09f0a3

Please sign in to comment.