2016-07-29 10 views
0

Ich benutze eckige translate Direktive in meiner Anwendung. Jetzt übersetze ich einen Schlüssel, der eine Zeichenkette zurückgibt.So verwenden Sie eckige translate Direktive mit limitTo Filter

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

nehme ich die Übersetzung in String-Form als apply online for this course bekam.

Jetzt möchte ich diese Zeichenfolge auf nur 12 Zeichen wie diese apply online... beschränken.

so habe ich wie diese

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

getan, aber das ist nicht richtig so , wie ich limitTo Filter verwenden kann, wenn die Expression von der Übersetzung selbst kommt.

Auch was ist die Verwendung von translate-values und translate-compile.

Antwort

1

Begrenzung Zeichenfolge mit limitTo Filter

{{limitTo_expression | LimitTo: limit: begin}}

https://docs.angularjs.org/api/ng/filter/limitTo

{{ "My String Is Too Long" | limitTo: 9 }} 

Welche Ausgang.

My String 

oder benutzen Ansatz folgende (nicht die translate Direktive

<span>{{TRANSLATION_KEY|translate|limitTo:9}}</span> 

https://angular-translate.github.io/docs/#/guide/04_using-translate-filter

Über die andere Frage bezüglich der angular-translate Richtlinie.

Die Richtlinie übersetzen erwartet ein optionales translate-values Attribut können Sie einige Werte durch sie hindurchtreten verwenden. Sie müssen nur tun, um die Direktive mit dem Attribut translate-values ​​zu kombinieren.

Sie können entweder ein Objektliteral als Zeichenfolge, Ausdruck oder, wenn der Wert dynamisch ist, eine Interpolationsanweisung übergeben. Was auch immer Sie in übergeben, wird es intern von Übersetzungsfilter ausgewertet und geparst, so was herauskommt, ist ein einfaches altes JavaScript-Objekt, das an $ translate Service übergeben wird.

<ANY translate="TRANSLATION_ID" 
    translate-values='{ username: "PascalPrect"}'></ANY> 

oder

<ANY translate="TRANSLATION_ID" 
    translate-values="{ username: someScopeObject.username }"></ANY> 

oder

<ANY translate="TRANSLATION_ID" 
    translate-values="{{translationData}}"></ANY> 

Beitrag Kompilieren

Ab Version 2, die trans kann selbst im Kontext des aktuellen Umfangs nachbearbeitet werden (mit $compile). Dies bedeutet, dass jede Direktive, die in einem Übersetzungswert selbst verwendet wird, jetzt als erwartet arbeitet.

Dieses Verhalten kann nach Richtlinie aktiviert werden:

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

Neben es, können Sie auch mit ...

$translateProvider.usePostCompiling(true); 

... und selbst dann die Funktion global ermöglichen Sie können die Funktion wieder per Direktive deaktivieren:

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

Ich möchte Filter verwenden, wenn der Ausdruck kommt von der Übersetzung selbst. Ich habe meinen Beitrag bearbeitet, bitte sehen Sie es sich an. –

+0

Siehe meine Antwort mit ' {{TRANSLATION_KEY | translate | limitTo: 9}}'. Sehen Sie mehr unter https://angular-translate.github.io/docs/#/guide/04_using-translate-filter –

+0

Dank @ daan.desmedt das ist, was ich gesucht habe. –

Verwandte Themen