2016-04-18 4 views
1

Я думаю, что я пробовал все решения, представленные при переполнении стека, но не смог найти ответ.Угловая директива ng-bind-html не работает в некоторых случаях

Я использую угловую директиву 1.4.4 и ng-repeat, и я хочу отобразить комментарий HTML внутри строки таблицы. Образец комментарий «Тест комментарий»

<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> 

Затем, в моем файле фильтра Я использую следующий фильтр:

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

Кроме того, она работает, когда я пишу что-то вроде

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

И наконец, когда я пишу что-то вроде

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

Комментарий отображается в виде < б > испытания комментарий </б >

Кроме того, я добавил ngSanitize:

(function() { 
    'use strict'; 

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

Мой вопрос, как я могу сделать нг-связывать-HTML работы в моем примере?

+1

Я построил JSFiddle со столом, и он отлично работает без вашего пользовательского фильтра. Вы уверены, что включили ngSanitize в свои модули приложений? https://jsfiddle.net/3t4yyh7p/25/ –

+0

Да. Добавлен NgSanitize. Я редактировал мой вопрос – Marek

ответ

-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> 
Смежные вопросы