Ich analysierte eine Reihe von E-Mail-Nachrichten von einem Server, und ich möchte sie jetzt auf einer Webseite anzeigen. Ich habe ihre HTML-Inhalte und ich dachte, ein IFrame war der einfachste Weg, um die E-Mails so zu zeigen, wie sie gezeigt werden sollten.AngularJS und IFrame srcdoc
jedoch
<iframe srcdoc="{{ email.html }}" frameborder="0"></iframe>
gibt mir die folgenden AngularJS Fehler:
Error: [$interpolate:interr] Can't interpolate: {{ email.html }}
Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context.
Ich habe nach einem Weg, dies zu tun, versuchte $ sce als Test zu deaktivieren, aber das didn‘ t arbeiten entweder. Es ist nur ein Testprojekt und die Daten, die ich bekomme, sind sicher, ich brauche sie nur für einen POC.
tat ich das jetzt in meinem Controller:
var iframeDocument = document.querySelector('#myiframe').contentWindow.document;
var content = $scope.email.html;
iframeDocument.open('text/html', 'replace');
iframeDocument.write(content);
iframeDocument.close();
das funktioniert, aber ich würde es immer noch durch Datenbindung bevorzugen, wenn eine Lösung gibt? Vielen Dank.
Was ist email.html? – dandavis
@dandavis Ein HTML-Dokument, das den tatsächlichen Inhalt der E-Mail enthält – cabaret
versucht, das doc zuerst in eine Zeichenfolge umzuwandeln und schließlich srcDoc auf die HTML-Zeichenfolge zu setzen. – dandavis