Ich benutze die Versionen 0.14.2 von angular-ui-bootstrap. Ich konnte im Popover keine Zeilenumbrüche anzeigen. Ich benutze die popover-html-Anweisung und eine Zeichenfolge wie
%Vor%Es gibt den folgenden Fehler:
%Vor%Ich habe versucht, meine Zeichenfolge in einen $ sce.trustAsHtml-Aufruf zu schreiben, aber es hat nichts geändert.
Hier ist ein Plünderer Ссылка
Funktioniert für mich mit $sce.trustAsHtml
wie unten.
Hinweis: trustAsHtml
teilt Angular mit, dass der HTML-Code sicher ist. Daher sollte es nur verwendet werden, wenn Sie dem HTML vertrauen, d. h. es wird nicht vom Benutzer bereitgestellt.
JS:
%Vor%HTML:
%Vor%Oder wenn Ihr Inhalt dynamisch ist und Sie eine Funktion benötigen:
JS:
%Vor%HTML:
%Vor% (Der Grund für die Zwischenspeicherung des von trustAsHtml
zurückgegebenen Werts ist, dass trustAsHtml
immer ein neues Objekt zurückgibt, was zu einer unendlichen $ digest-Schleife führen kann)
Der akzeptierte Ansatz kann leicht zu einer Cross-Site-Scripting-Schwachstelle in Ihrer Anwendung führen. Sie sollten $sce.trustAsHtml
wirklich nur verwenden, wenn Sie explizit dem Inhalt vertrauen, den Sie anzeigen möchten. Die angular-bootstrap-Dokumentation weist auch darauf hin:
Der Benutzer ist dafür verantwortlich, dass der Inhalt sicher in das DOM eingefügt werden kann!
Ein alternativer und sicherer Ansatz besteht darin, uib-popover-template
mit einer einfachen Vorlage in Kombination mit ng-bind-html
zu verwenden, die automatisch $sanitize
verwendet, um den HTML-Code zu bereinigen.
HTML
%Vor%JS
%Vor% Sie müssen außerdem ngSanitize
in Ihrer App deklarieren und das Skript angular-sanitize.js
einbeziehen. Bitte werfen Sie einen Blick auf den aktualisierten Plocker als Referenz.
Tags und Links angularjs angular-ui-bootstrap