ng2-translate 指令在管道运行时不起作用

ng2-translate directive not working while pipe is

Ng2-translate directive 给我带来了一些问题,但我不知道是我做错了什么还是错误。

在同一组件的 html 模板上,翻译 pipe 有效,而翻译 directive 无效。

特别是:

<span translate>{{ feature.linkTxt }}</span> // works

<span [translate]="feature.linkTxt"></span> // not working

https://github.com/ocombe/ng2-translate#4-use-the-service-the-pipe-or-the-directive

我是不是遗漏了什么或者它应该有用吗?

编辑

变量feature.linkTxt指向stringLEARNMORE,对应如下json字符串:

"LEARNMORE": "Learn more",

如果我使用相同的变量从指令切换到管道,则会显示翻译后的文本。

feature.linkTxt 变量由以下 *ngFor 语句生成:

<li *ngFor="let feature of featureslist"> ...

根据 ng2-translate example 如果您的语言文件如下:

{
  HELLO: 'hello {{value}}'
}

那么你应该像这样使用它:

// there is single quote foe HELLO inside [translate]
<div [translate]="'HELLO'" [translateParams]="{value: 'world'}"></div>

所以我认为你的 json 就像:{ feature : { linkTxt : 'Your Text' } } 并且你应该像这样使用它:

<span [translate]="'feature.linkTxt'"></span>

原来这是一个已知的开放式bug。

https://github.com/ocombe/ng2-translate/issues/355