Wie behandelt man Strings mit HTML mit Angular-Translate?
Gibt es eine Möglichkeit zu sagen, kantig und angular-translate Behandlung von strings, die HTML enthält Inhalte.
Habe ich add_card-title = "To make ordering even quicker, <span class="nowrap">add a card now</span>"
als meine Lang-string. Wenn ich es in meinem template schreiben <p>{{'add_card-title' | translate}}</p>
bekomme ich Strings wie es ist.
Ausgabe: To make ordering even quicker, <span class="nowrap">add a card now</span>
erwartete Ausgabe: To make ordering even quicker, add a card now
Ich weiß, dass ich verwenden können ng-html-bind-unsafe
aber es ist nicht zu helfen.
Nicht funktioniert:
<p ng-html-bind-unsafe="{{'add_card-title' | translate}}"></p>
Gibt es eine Möglichkeit, es zu erreichen?
Hier ist mein plunker: http://plnkr.co/edit/nTmMFm9B94BmbTgo2h8H?p=preview
Als Referenz können Sie sehen, dieses Problem: https://github.com/PascalPrecht/angular-translate/issues/173
Hinweis: ich will nicht invlove-controller zu behandeln.
ng-html-bind-unsicher
ist veraltet, das ist, warum es nicht funktioniert. InformationsquelleAutor der Frage waqas | 2013-11-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun, out-of-box mit angular-translate 2.0 in diesen Tagen.
wirkt Wunder für mich.
InformationsquelleAutor der Antwort James
Verwenden Sie den ng-bind-html-Direktive, ohne die geschweiften Klammern ({{ }})
Wissen der Konfiguration erforderlich, um zu verwenden, dass die Richtlinie (ngBindHtml), Folgen Sie diesem link: https://docs.angularjs.org/api/ng/directive/ngBindHtml
Nach ngSanitize enthalten ist, der folgende code sollte funktionieren:
InformationsquelleAutor der Antwort A.Infante
Dies funktioniert für mich... der HTML-Code wird interpretiert, für schöne Schriftstile (z.B. Fett, Kursiv, etc.)
Allerdings brauchte ich auch, um sicherzustellen, dass ich nicht mit escape-Strategie in der provider-setup. Das verwirrte mich eine Weile.
$translateProvider.useSanitizeValueStrategy( 'sanitize' );
$translateProvider.useSanitizeValueStrategy( 'escape' );
https://angular-translate.github.io/docs/#/guide/19_security
Mit: angular-translate v2.13.1
InformationsquelleAutor der Antwort Michael R
Habe ich die Lösung gefunden.
Ich war mit
AngularJS v1.2.0-rc.3
hatng-html-bind-unsafe
veraltet. Jetzt eckig hatng-bind-html
stattng-html-bind-unsafe
. Aber man hat zu injizieren angular-sanitize als eine Abhängigkeit, um es arbeiten.Ersetzte ich
mit
und die Dinge begannen zu arbeiten.
InformationsquelleAutor der Antwort waqas
Hier gibt es viele Möglichkeiten zu mischen, bis html (zusammen mit scope-Variablen, zusammen mit interpretion, wenn Sie müssen Dinge wie ng-klicken Sie in Ihrem html-übersetzungen):
http://plnkr.co/edit/OnR9oA?p=preview
InformationsquelleAutor der Antwort armyofda12mnkeys
Standardmäßig AngularJS Flucht-und code-es zeigt aus Gründen der Sicherheit, die Sie brauchen, zu erzählen Winkel der Saiten, die Sie nicht wollen, zu entkommen, in den älteren Zeiten, bevor AngularJS 1.2 Entwickler tun konnte, dass durch die Verwendung
ng-bind-html-unsafe
aber in AngularJS 1.2, die ist veraltet.Verwenden html tags in strings, in AngularJS 1.2+, die Sie herunterladen müssen
angular-sanitize
Modul und fügen Sie es in Ihre Anwendung Abhängigkeiten.Jeder string enthält den html code, den Sie können es öffnen, indem Sie mit
ng-bind-html
Automatisch verwendet $desinfizieren, in Ihrem Fall es wird seinng-bind-html="'add_card-title' | translate"
Referenz:
Auf Medium
AngularJS-Dokumentation
InformationsquelleAutor der Antwort Ya Basha
Können Sie
<p [innerHTML]="'add_card-title' | translate"></p>
InformationsquelleAutor der Antwort Camilo Soto
Ich habe versucht, sowohl Ihre Antworten und keiner von Ihnen arbeitete auf 1.0.7 also für alle, die arbeiten vor 1.2 Sie können es so machen
InformationsquelleAutor der Antwort J.Pip
InformationsquelleAutor der Antwort Leo