Wie verwenden Sie $sce.trustAsHtml(string) zu replizieren ng-bind-html-unsafe in Eckigen 1.2+
ng-bind-html-unsafe
entfernt wurde, in Eckigen 1.2
Ich versuche, etwas umzusetzen, wo ich ng-bind-html-unsafe
. In der Dokumentation und auf der github-commit-Sie sagen:
ng-bind-html bietet ng-html-bind-unsicher-wie-Verhalten (innerHTML ist das Ergebnis ohne
- Bereinigung), wenn Sie an das Ergebnis gebunden $sce.trustAsHtml(string).
Wie tun Sie dies?
mögliche Duplikate von "HTML Einfügen" in die Ansicht mit AngularJS
InformationsquelleAutor timhaak | 2013-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden sollten:
plus im controller:
anstelle der alten syntax, wo könnte man die Referenz
$scope.html
variable direkt:Wie einige Kommentatoren darauf hingewiesen,
$sce
gespritzt werden in den controller, sonst erhalten Sie$sce undefined
Fehler.Nicht sicher, wenn ich dir Recht, aber:
<p ng-bind-html="trustedHtml"></p>
und$scope.trustedHtml = $sce.trustAsHtml(description(category.id));
Ich Liebe Sie für die Beantwortung! Anscheinend wurde das Problem, mich mit 1.0.8. Ich habe ein Formular mit dynamischer Anzahl der Abschnitte so ändern, ich wollte die richtige Beschreibung.
<p ng-bind-html="description(category.id)"></p>
dann die Letzte Zeile der Funktion:return $sce.trustAsHtml(value);
Aber... var x = sce.trustAsHtml('foo'); var y = sce.trustAsHtml('foo'); x==y; false ... So sollte dies nicht eine unendliche digest-Schleife, da Ihre Funktion liefert ein neues Objekt ?
Erwähnenswert ist auch $sce übergeben werden muss in die Steuerung, oder Sie erhalten $sce ist nicht definiert
InformationsquelleAutor Nenad
Filter
Nutzung
Warum brauchen Sie
ngSanitize
hier?da die $sce-service ist definiert in ngSanitize. Sie brach auseinander, große Funktionalität, so dass wir verwenden können Winkel nur ein wenig und nicht immer das gesamte framework.
in der version 1.2 (wenn Sie Hinzugefügt dies) es aktiviert ist, standardmäßig als Teil der core, nicht
ngSanitize
, so gibt es keine Notwendigkeit fürngSanitize
Dies ist eine design-Entscheidung, die die Winkel-team - das ist wie der Filter umgesetzt werden sollte - wenn Sie es tun, sonst werden Sie nicht arbeiten. Der Grund, warum dieser muss wieder eine Funktion ist, die Winkel können Sie verzögern, bis es 'findet den richtigen moment". Sonst würde das framework keinerlei Einfluss auf wenn der filter aufgerufen wird. Das ist sowohl gut als auch schlecht, aber soweit ich das beurteilen kann -, ist es notwendig, zu bewältigen angulars' tricky Verarbeitung. Mehr info hier: docs.angularjs.org/api/ng/provider/$filterProvider
InformationsquelleAutor Chris
Ich persönlich bereinigen, alle meine Daten mit einigen PHP-Bibliotheken, bevor Sie in die Datenbank, so gibt es keine Notwendigkeit für eine weitere XSS-filter für mich.
Von AngularJS 1.0.8
Verwenden:
Deaktivieren
$sce
:Ich glaube, es würde funktionieren, wenn es war
<script>System.out.printIn("Hello World!");</script>
, habe nicht versucht dies persönlich, da meine PHP-entfernt alle JS aus Benutzereingaben. Ich entfernte meine zweite Beispiel, weil die Winkel-die native ist in jeder Hinsicht überlegen, nur diese verwenden.Wie Sie dies tun, für summernote-editor zunächst werde ich die json-Daten(mit dem html-Code) vom server, in summernote ich bin mit ng-model. wie man den code als vertrauenswürdig für die Anzeige im editor summernote
InformationsquelleAutor Michael J. Calkins
var line = "<label onclick="alert(1)">aaa</label>";
1. verwenden Sie filter
verwenden (html):
2. verwenden ngSanitize : sicherer
gehören
angular-sanitize.js
hinzufügen
ngSanitize
im root-Winkel-appverwenden (html):
InformationsquelleAutor nguyên
Erstellen Sie einfach einen filter wird den trick tun. (Beantwortet für Eckige 1.6)
Und verwenden Sie diese wie folgt in den html-Code.
InformationsquelleAutor STEEL
Wenn Sie wollen, dass die alte Richtlinie zurück, können Sie fügen Sie diese, um Ihre app:
Richtlinie:
Nutzung
Quelle - https://github.com/angular-ui/bootstrap/issues/813
Wie Sie dies tun, für summernote-editor zunächst werde ich die json-Daten(mit dem html-Code) vom server, in summernote ich bin mit ng-model. wie man den code als vertrauenswürdig für die Anzeige im editor summernote
InformationsquelleAutor Adrian Enriquez
JavaScript
HTML
InformationsquelleAutor wcc526
Für Schienen (zumindest in meinem Fall), wenn Sie mit der angularjs-rails gem, bitte vergessen Sie nicht, die sanitize-Modul
Laden und dann im app...
Dann können Sie Folgendes tun:
Auf der Vorlage:
Und schließlich:
Check this out: github.com/summernote/summernote/issues/...
InformationsquelleAutor DevDude
InformationsquelleAutor Saurabh