2016-07-29 37 views
0

我在我的應用程序中使用angular translate指令。現在我正在翻譯一個返回字符串的鍵。如何使用angular translate指令和limitTo過濾器

<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

限制字符串limitTo過濾

{{limitTo_expression | limitTo:限制:開始}}

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-values 屬性你可以用通過它來傳遞一些值。您只需將 的指令與translate-values屬性相結合即可。

您可以傳遞對象字面值作爲字符串,表達式,或者,如果值爲動態值,則爲插值指令。無論您通過 ,它都會通過翻譯過濾器進行內部評估和分析,因此 顯示的是一個普通的舊JavaScript對象,它將傳遞到 $ translate服務。

<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版開始,反式lation本身可以在當前範圍的上下文中進行後處理 (使用$compile)。這意味着在翻譯價值本身中使用的任何 指令現在將作爲 預期。

這種行爲可以按指令被激活:

<ANY translate="TRANSLATION_ID" translate-compile></ANY> 

此外,你還可以啓用該功能與全球...

$translateProvider.usePostCompiling(true); 

......即使如此,您可以再次禁用每個指令的功能:

<ANY translate="TRANSLATION_ID" translate-compile="false"></ANY> 
+0

我想使用過濾器時表達來自翻譯本身。我編輯了我的帖子,請看看它。 –

+0

查看我的回答,使用' {{TRANSLATION_KEY | translate | limitTo:9}}'。更多信息請訪問https://angular-translate.github.io/docs/#/guide/04_using-translate-filter –

+0

謝謝@ daan.desmedt這就是我一直在尋找的東西。 –