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?
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/ –
Ja. NgSanitize wurde hinzugefügt. Ich habe meine Frage bearbeitet – Marek