【问题标题】:ng2-translate: Cannot read property 'subscribe' of undefined at TranslatePipe.transformng2-translate:无法在 TranslatePipe.transform 读取未定义的属性“订阅”
【发布时间】:2018-10-08 14:31:01
【问题描述】:

我在我的 Angular 5 项目中使用 ng2-translate,我正在尝试为一个组件创建一个单元测试。 我总是在我的测试中导入TranslateModule.forRoot( *...* ),测试将在我的视图中使用翻译管道。

但在两种情况下,在单元测试期间会引发上述错误: 我看不出与其他工作测试有任何区别。

× 应该创建 (44ms) TypeError:无法读取未定义的属性“订阅” 在 TranslatePipe.transform (webpack:///./node_modules/ng2-translate/src/translate.pipe.js?:74:75) 在 Object.eval [作为 updateRenderer] (ng:///DynamicTestModule/MyComponent.ngfactory.js:127:70) 在 Object.debugUpdateRenderer [as updateRenderer] (webpack:///./node_modules/@angular/core/esm5/core.js?:14951:21) 在 checkAndUpdateView (webpack:///./node_modules/@angular/core/esm5/core.js?:14065:14)

发生这种情况的任何原因? 我不使用 TranslateService,但我使用模板中的管道。 有人遇到过同样的问题吗?

【问题讨论】:

  • 我注意到这个错误发生在我使用 translateParams 指令的任何组件上。

标签: angular unit-testing ngx-translate ng2-translate testbed


【解决方案1】:

我有同样的问题,我添加到 TranslateService 模拟类:

public onLangChange: EventEmitter<any> = new EventEmitter(); public onTranslationChange: EventEmitter<any> = new EventEmitter(); public onDefaultLangChange: EventEmitter<any> = new EventEmitter();

【讨论】:

  • 仍然适用于 angular 9.0.7 和 ngx-translate 11.0.1
  • 很高兴看到您的整个模拟服务以及您如何导入 TranslateModule
  • 2020 年仍然遇到这个问题。伤心。
  • @CularBytes 和其他人:如果有人再次绊倒,我创建了一个示例:gist.github.com/alexanderfink/082d25aa4e0700d654e8612eb58d17b2
猜你喜欢
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2019-10-11
  • 1970-01-01
相关资源
最近更新 更多