2014-10-15 13 views
5

Próbuję dodać HTML do div następująco:ng-bind-html - z kątowym-zdezynfekować - rzuca błąd w konsoli

$scope.thehtml = $sce.trustAsHtml("<b>hello</b>") 

<div ng-bind-html="thehtml"> 
</div> 

widzę następujący błąd w konsoli:

TypeError: undefined is not a function 
    at htmlParser (js/angular/angular-sanitize.js:205:17) 
    at $sanitize (js/angular/angular-sanitize.js:119:5) 
    at Object.ngBindHtmlWatchAction [as fn] (js/angular/angular-sanitize.js:420:15) 
    at h.$get.h.$digest (js/angular/angular.min-125.js:98:396) 

kątowe-sanitize.js: 205: 17 to:

if (html.indexOf("<!--") === 0) { 
index = html.indexOf("-->"); 

Widocznie nie b HTML traktowane jako ciąg, a zatem błąd w indexOf?

Dołączyłem kodek-sanitize.js i dodałem moduł "ngSanitize" do aplikacji.

+0

Niezależnie od 'html' jest w' kąt-sanitize.js: 205: 17', nie ma funkcji 'indexOf'. –

+1

'$ scope.thehtml' musi być html i musi zaczynać się od' <', nie możesz zaczynać od tekstu. Co to jest '$ scope.thehtml'? – PSL

+0

PSL> Zaktualizowano pytanie, aby pokazać, że kiedy przekazujemy ciąg html bezpośrednio do trustAsHtml (...), ten sam błąd nadal występuje. – Jasper

Odpowiedz

2

Proszę zobaczyć ten plunk. Z tego, co widzę, twoja implementacja wygląda dobrze! Mój plunk działa i nie otrzymuję wyjątku z tym samym kodem. Nie musiałem dodawać ngSanitize jako zależność od modułu, właśnie wprowadziłem $ sce do kontrolera.

Wersje bibliotek użyłem są następujące:

https://code.angularjs.org/1.2.28/angular.js 
https://code.angularjs.org/1.2.0-rc.3/angular-sanitize.js 

Spróbuj zastępując referencje skrypt z tych wersji, aby zobaczyć, czy to z bibliotekami, które są winne.

Daj mi znać, jak sobie radzisz! Powodzenia :)

+1

Mam ten sam problem i użyłem starszej wersji angular-satinize.js, kiedy zastąpiłem go bieżącym, w którym problem został rozwiązany. –

Powiązane problemy