angular-translate:无法在嵌套指令中使用动态数据

时间:2018-02-14 14:06:37

标签: angularjs angular-translate

我正在使用angular-translate包。它为开发者提供了不同的东西。有一点是内部插值,因此您可以在翻译字符串中使用动态数据。甚至是角度指令。

假设我们有问候。

'Hello {{name}}!'

在模板中使用它:

<h3 translate="greeting" translate-values="vm.user" translate-compile></h3>

user.name可能是空的。在这种情况下,我想看到“Hello anonymous!”。我正在尝试使用ng-if,但它无法按预期方式运行:

'greeting': 'Hello <span ng-if="!name">anonymous</span>{{name}}!'

输出“Hello anonymousJack!”就像name为空并且同时不为空。

为什么我不想将ng-if注入模板而不是翻译?因为根据语言,名称部分会有不同的位置。所以我想避免像

这样的分解不清楚
<span translate="greeting_1"></span>
<span ng-if="vm.user.name" bind="vm.user.name"></span>
<span ng-if="!vm.user.name" translate="greeting_anomymous"></span>
<span translate="greeting_2"></span>

这看起来不清楚和令人困惑。特别是在更复杂的情况下。

1 个答案:

答案 0 :(得分:0)

我发现通过translate-values传递的所有数据都可以在嵌套变量interpolateParams中使用。接下来就可以了:

'greeting': 'Hello <span ng-if="!interpolateParams.name">anonymous</span>{{name}}!'