我在我的应用程序中使用angular translate指令。现在我正在翻译一个返回字符串的键。
<div translate="TRANSLATION_KEY"></div>
假设我将字符串形式的翻译作为apply online for this course
。
现在我希望此字符串限制为仅限12个字符,例如apply online...
。
所以我这样做了
<div {{translate="TRANSLATION_KEY | limitTo:12 }}"></div>
但这不正确
所以
当表达式来自翻译本身时,我如何使用limitTo
过滤器。
translate-values
和translate-compile
还有什么用途。
答案 0 :(得分:2)
使用limitTo
过滤器限制字符串
{{limitTo_expression | limitTo:limit:begin}}
https://docs.angularjs.org/api/ng/filter/limitTo
{{ "My String Is Too Long" | limitTo: 9 }}
将输出:
My String
或使用以下方法(不使用translate
指令。
<span>{{TRANSLATION_KEY|translate|limitTo:9}}</span>
https://angular-translate.github.io/docs/#/guide/04_using-translate-filter
关于angular-translate
指令的其他问题。
translate指令需要一个可选的
translate-values
您可以使用该属性通过它传递一些值。所有你需要的 做的是将指令与translate-values属性结合起来。您可以将对象文字传递为字符串,表达式或if 值是动态的,插值指令。无论你通过什么 在,它由内部评估和翻译过滤器解析,所以 出来的是一个普通的旧JavaScript对象,它被传递给 $翻译服务。
<ANY translate="TRANSLATION_ID"
translate-values='{ username: "PascalPrect"}'></ANY>
或
<ANY translate="TRANSLATION_ID"
translate-values="{ username: someScopeObject.username }"></ANY>
或
<ANY translate="TRANSLATION_ID"
translate-values="{{translationData}}"></ANY>
发布后期
从版本2开始,翻译本身可以进行后期处理 在当前范围的上下文中(使用
$compile
)。这意味着任何 翻译值本身使用的指令现在可以作为 预期
可以按指令启用此行为:
<ANY translate="TRANSLATION_ID" translate-compile></ANY>
除此之外,您还可以使用...
全局启用该功能$translateProvider.usePostCompiling(true);
...即使这样你也可以按照指令再次禁用该功能:
<ANY translate="TRANSLATION_ID" translate-compile="false"></ANY>