错误:没有TranslateStore的提供程序

时间:2017-12-06 10:58:54

标签: javascript angular jasmine

"错误:没有TranslateStore的提供商!"而UI单元测试Angular 4中的翻译服务。 运行测试命令后,我得到测试用例失败错误以及上面的错误消息。

2 个答案:

答案 0 :(得分:1)

Try this:

import {TranslateFakeLoader,TranslateLoader,TranslateModule,TranslateService } from '@ngx-translate/core';

TestBed.configureTestingModule({
      imports: [
        ...
        TranslateModule.forRoot({
          loader: {
            provide: TranslateLoader,
            useClass: TranslateFakeLoader
          }
        })
      ],
      ...
      providers: [
        TranslateService
      ]

答案 1 :(得分:0)

TranslateStore导入并添加到我的延迟加载模块中的提供程序中已解决了我的问题。

import { TranslateModule,TranslateService,TranslateStore } from '@ngx-translate/core';

export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

    @NgModule({
      declarations: [...],
      imports: [
        TranslateModule.forChild(
            {
            loader: {
              provide: TranslateLoader,
              useFactory: (createTranslateLoader),
              deps: [HttpClient]
          }
        
              })],
              providers:[TranslateStore ]
    })

查看下面的问题链接以获取更多信息

https://github.com/ngx-translate/core/issues/883#issuecomment-502037966