我正在使用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>
这看起来不清楚和令人困惑。特别是在更复杂的情况下。
答案 0 :(得分:0)
我发现通过translate-values
传递的所有数据都可以在嵌套变量interpolateParams
中使用。接下来就可以了:
'greeting': 'Hello <span ng-if="!interpolateParams.name">anonymous</span>{{name}}!'