2016-05-12 8 views
1

Ich habe die eckige Version von 1.0.8 auf 1.4.0 aktualisiert.ng-bind-html-unsafe funktioniert nicht

Ich habe ng-bind-html-unsafe="value | noHTML | newlines" verwendet, um eine Zeichenfolge einzuwickeln. Dies funktioniert seit der neuen Version nicht mehr.

Ich habe versucht, mit der folgenden Lösung, aber immer noch nicht funktioniert.

app.filter('unsafe', function($sce) { return $sce.trustAsHtml; }); 

und

ng-bind-html-unsafe="value | unsafe | noHTML | newlines" 

Antwort

2

Da Angular 1.2.X ng-bind-html-unsafe ist veraltet, tun ng-bind-html

ng-bind-html="value | unsafe | noHTML | newlines" 
+0

Versuchte bekommen. Aber nicht funktioniert. In diesem Fall ist 'filter ('unsafe', Funktion ($ sce) {return $ sce.trustAsHtml;}) 'erforderlich? Angular Version ist 1.4.0 – NaaN

+0

@ep haben Sie "ngSanitize" Modul in Ihrer App-Abhängigkeit enthalten? –

+0

Nein. Ich habe nicht. Lass mich das versuchen. – NaaN

1

Dank @Pankaj Parkar verwenden:

Ich habe es jetzt gelöst, Ich muss alles filtern. dh. to_trusted, noHTML und newlines. Und auch wir müssen diese den tatsächlichen Wert von $sce.getTrustedHtml(object)

.filter('to_trusted', ['$sce', function($sce){ 
    return function(text) { 
     return $sce.trustAsHtml(text); 
    } 
}]).filter('noHTML', ['$sce', function($sce){ 
    return function(text) { 
     var str = $sce.getTrustedHtml(text); 
     str = str 
     .replace(/&/g, '&') 
     .replace(/>/g, '>') 
     .replace(/</g, '&lt;'); 
     return $sce.trustAsHtml(str); 
    } 
}]).filter('newlines', ['$sce', function($sce){ 
    return function(text) { 
     var str = $sce.getTrustedHtml(text); 
     str = str.replace(/\n/g, '<br/>'); 
     return $sce.trustAsHtml(str); 
    } 
}]) 

und

ng-bind-html="value| to_trusted | noHTML | newlines" 
Verwandte Themen