如何使用带有limitTo过滤器的angular translate指令

时间:2016-07-29 06:25:13

标签: angularjs angular-translate

我在我的应用程序中使用angular translate指令。现在我正在翻译一个返回字符串的键。

<div translate="TRANSLATION_KEY"></div>

假设我将字符串形式的翻译作为apply online for this course

现在我希望此字符串限制为仅限12个字符,例如apply online...

所以我这样做了

<div {{translate="TRANSLATION_KEY | limitTo:12 }}"></div>

但这不正确 所以 当表达式来自翻译本身时,我如何使用limitTo过滤器。

translate-valuestranslate-compile还有什么用途。

1 个答案:

答案 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>