2016-04-18 22 views
1

Ich denke, ich habe versucht, alle Lösungen auf Stack-Overflow vorgestellt, konnte aber keine Antwort finden.Angular Direktive ng-bind-html funktioniert in einigen Fällen nicht

Ich verwende angular 1.4.4 und ng-repeat Direktive und ich möchte einen HTML-Kommentar in einer Tabellenzeile anzeigen. Eine Probe Kommentar 'Test-Kommentar'

<tbody ng-show="dataLoaded"> 
    <tr ng-repeat="comment in comments | filter: commentFilter | commentFilter: customCommentFilter | limitTo: 10 : (currentPage*10-10)"> 
     <td ng-bind-html="comment.Comment | html"> 
     </td> 
    </tr> 
</tbody> 

Dann in meiner Filterdatei ist ich folgende Filter verwende:

// html filter (render text as html) 
angular.module('app').filter('html', ['$sce', function ($sce) { 
    return function (text) { 
     return $sce.trustAsHtml(text); 
}; 

Auch es funktioniert, wenn ich so etwas wie

schreiben
<td ng-bind-html="'<b>abc</b>' | html"> 

Schließlich, wenn ich etwas schreibe wie

<td> 
    {{comment.Comment}} 
</td> 

Der Kommentar wird als <b> Test-Kommentar </b >

auch angezeigt, ich habe hinzugefügt ngSanitize:

(function() { 
    'use strict'; 

    var app = angular.module('app', [ 
     // Angular modules 
     'ngCookies', 
     'ngRoute', 
     'ngAnimate',      
     'ngSanitize',      
    ]); 
    ... 
    ... 
})(); 

Meine Frage ist, wie kann ich ng-bind-html Arbeit machen in meinem Beispiel?

+1

Ich baute eine JSFiddle mit einer Tabelle, und es funktioniert gut ohne Ihren benutzerdefinierten Filter. Sind Sie sicher, dass Sie ngSanitize in Ihre App-Module integriert haben? https://jsfiddle.net/3t4yyh7p/25/ –

+0

Ja. NgSanitize wurde hinzugefügt. Ich habe meine Frage bearbeitet – Marek

Antwort

-1
<tbody ng-show="dataLoaded"> 
    <tr ng-repeat="comment in comments | filter: commentFilter | commentFilter: customCommentFilter | limitTo: 10 : (currentPage*10-10)"> 
     <td ng-bind="comment.Comment"> 
     </td> 
    </tr> 
</tbody>