2015-07-09 3 views
0

Я использую аккордеон с угловым ui-bootstrap. И я нахожусь в ng-repeat. В моем заголовке аккордеона я пытаюсь связать с переменной области с html в ней. Я пытаюсь связать html с data-ng-bind-html и угловым сервисом $sce. Я также ввел ngSanitize в мое приложение.Bind html to angle-ui-bootstrap accordion

Но я не получаю результат, который я хочу. Это мой аккордеон заголовок:

<accordion close-others="true"> 
     <accordion-group class="row" data-ng-repeat="content in pageContent" data-ng-if="content.pageId === page.id"> 
      <accordion-heading data-ng-bind-html="trustedHtml(content.columnTitle)" ></accordion-heading> 
      <!-- rest of content --> 
     </accordion-group> 
     </accordion> 

В мой контроллер я впрыснуть $sce и это $scope метод:

$scope.trustedHtml = function (input) { 

     return $sce.trustAsHtml(input); 
    } 

Может кто-нибудь помочь мне с этим?

ответ

1

Попробуйте сделать следующее,

В HTML

<accordion close-others="true"> 
    <accordion-group class="row" data-ng-repeat="content in pageContent" data-ng-if="content.pageId === page.id"> 
    <accordion-heading ng-bind-html="content.columnTitle | unsafe" ></accordion-heading> 
      <!-- rest of content --> 
    </accordion-group> 
</accordion> 

В JavaScript

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

Вместо этого с контроллером и моделью, почему бы не использовать шаблон директивы. Передайте переменную в шаблон. Извлеките его значение, а затем дайте ему значение замены внутри вашей директивы.

+0

я нахожусь в нг-повтора: я уже настроил код HTML пример выше всего минуту назад – Doek

+0

Вы все еще можете использовать настраиваемую директиву и шаблон. Поместите директиву на тег заголовка аккордеона, передайте имя переменной области действия с директивой, получите значение области действия в директиве и установите element.html на сохраненное значение. Это стилистическая вещь, но я предпочитаю этот путь над остальными, поскольку я хочу, чтобы все манипуляции с DOM были исключены из контроллера, фабрики и т. Д. И только в директивах. Кроме того, поскольку это директива, предназначенная для вас, вам больше не нужно беспокоиться о том, чтобы заставить Angular распознать, что на самом деле предполагается вставить HTML. – tuckerjt07

+0

Это сработало для вас? – tuckerjt07