Ich versuche, eine HTML-Zeichenfolge in meiner Winkelansicht anzuzeigen.
Anfangs habe ich diese naiv versucht:
<p>{{ad.text}}</p>
$scope.ad = { 'text' : '<a href="#">Link</a>'}; // Dynamically fetched, etc. This is just an example text
Aber das zeigt nur <a href="#">Link</a>
in der Ansicht nicht: link.
Nach ein paar Recherchen stolperte ich über ngSanitize. Ich habe es ausprobiert, aber es entfernt den gesamten HTML-Code vollständig, um nur Rohtext zu lassen. Ziemlich sicher in der Tat. Eigentlich ein bisschen zu viel. Wie auch immer, ngSanitize ist jetzt veraltet.
This SO post zeigt an, dass jetzt der $ sce Dienst anstelle von ngSnitize verwendet werden muss.
diese verschiedenen Lösungen verfolgt, hier ist das, was ich kam mit:
HTML
<p ng-bind-html="htmlAdText"></p>
JS
$scope.ad = { 'text' : '<a href="#">Link</a>'};
$scope.htmlAdText = $sce.trustAsHtml($scope.ad.text);
Aber dieser Fehler kommt in der Konsole:
ReferenceError: $sce is not defined
Was? Bugs mir ist, dass der $ sce-Dienst soll Teil von Angulars Kern seit v1.2 sein, und ich benutze v1.3.9.
Was geht hier vor? Hat jemand eine definitive Methode, um HTML in einer AngularJS-Ansicht anzuzeigen (ohne Filter, die nur den Rohtext belassen)?
Versuchen angular.element mit – Tyranicangel
Was meinen Sie? HTML mit einem jQuery-Wrapper einbinden? Wie würdest du das bei 'ad.text' ändern? Ich sehe es mir an. –
Haben Sie $ sce in Ihren Controller injiziert? –