具有useFactory的提供者LOCALE_ID返回null

时间:2020-03-02 17:57:14

标签: angular angular9

在更新到angular 9之后,我的提供程序返回null。

@NgModule({
    providers: [
        [...],
        {
          provide: LOCALE_ID,
          deps: [TenantService],      // some service handling global settings
          useFactory: (tenantService) => tenantService.currentTenantValue.language // returns locale string
        }
    ]
})

我的服务:

public currentTenant: Observable<Tenant>;

constructor() {
    this.currentTenantSubject = new BehaviorSubject<Tenant>(null);
    this.currentTenant = this.currentTenantSubject.asObservable();
}

public get currentTenantValue(): Tenant {
    return this.currentTenantSubject.value;
}

我认为这是可以观察的,提供者在接收通过httpClient.get来的语言值之前会先获取变量的第一个状态

1 个答案:

答案 0 :(得分:0)

我在app.module中将其设置为默认

export function tenantServiceFactory(tenantService: TenantService){
  return tenantService.currentTenantValue.language;
}

    {
      provide: LOCALE_ID,
      deps: [TenantService],      //some service handling global settings
      useFactory: tenantServiceFactory  //returns locale string
    },

在我的shared.module中,我再次使用来自服务器的语言对其进行了定义

while IFS= read -r p; do
   date -d "$p" +%A
done <dates.txt >output.txt