2013-02-06 6 views
49

Ich habe einen Repeater eingerichtet und kann Daten so lange anzeigen lassen, wie kein HTML drin ist.Angular sanitize/ng-bind-html funktioniert nicht?

Ich habe angular-sanitize.js enthalten und haben versucht, ng-bind-html

Verwendung Aber nichts wird innerhalb der Spanne angezeigt, nur im ng-bind-html Attribut. So sieht es aus wie Sanitize funktioniert nicht,

Ich lese, dass dies zu den App-Abhängigkeiten hinzugefügt werden muss, bin mir aber nicht sicher, wo dies zu tun ist.

Ich habe gerade durch den Tut auf der angularen Stelle gearbeitet, also habe nur eine sehr grundlegende Steuerung, die in der Minute aufgestellt wird.

+0

könnte Ihnen zeigen, was u auf jsfiddle versucht haben –

+0

http://jsfiddle.net/eZhnd/16/ –

+0

Sieht so aus, als wäre die angular-sanatize.js-Datei, die ich benutzt habe, falsch gewesen, ich hatte sie aus dem Git-Repo genommen, aber als ich die auf js fiddle verwendete verwendet habe, funktioniert sie jetzt wie erwartet. –

Antwort

123
  1. Sie enthalten müssen die angular-sanitize.js http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js

  2. Hinzufügen 'ngSanitize 'zu Ihnen Modulabhängigkeiten

    var myApp = angular.module (' myApp‘[ 'ngSanitize']);

  3. Sie nicht die {{}} im Attribut

    < h1 ng-bind-html = "item.title" > </h1 >

  4. Do not Verwenden Sie $sce.trustAsHtml()

+1

Das ist perfekt! –

+0

Vielen Dank für die Schritte. So viel einfacher zu folgen und herauszufinden. – jasonflaherty

+0

Arbeitete perfekt für mich auch. Vielen Dank. – Keshav

0

ich ein ähnliches Problem aufgetreten ist, aber ich war ein wenig seltsam. Nur die Eingabe-Tags wurden nicht gerendert, während alles andere einschließlich tat. i Nach einigen Stunden klar, dass abgesehen von

angular-sanitize.min.js 

I

textAngular-sanitize.min.js 

mein Projekt hinzuzufügen benötigen, bevor der Eingang-Tags gearbeitet.Es war wirklich frustrierend, also hoffe ich, dass dies jedem in einer ähnlichen Situation hilft.

0

Dieses Problem trat auf, wenn eine Direktive verwendet wurde und die Lösung nicht "replace" im Code verwendete.

`ng-html-bind‘ wurde auf einem div in der Ansicht templateUrl verwendeten

appDirectives.directive('helpText', [function() { 
return { 
    restrict: 'E', 
    //replace: true, // With this uncommented it does not work! 
    scope: { 
     displayText: '=' 
    }, 
    templateUrl: '/web/form/helptext', 
    link: function (scope) { 

    } 

}; 
}]);