аккордеон с ng-repeat и ng-bind-html не будет работать

Я пытаюсь использовать аккордеон и html-контент следующим образом:

<accordion>
   <accordion-group ng-repeat="item in items">
      <accordion-heading>
          <a class="btn btn-primary btn-block btn-elenco">
         <img postsrc="img/flag/flag_{{item.index}}.jpg">
      </a>
      </accordion-heading>
      <p ng-bind-html="item.content"></p>
   </accordion-group>
</accordion>

А ТАКЖЕ

var items = [];
for(var i=0;i<10;i++){
var content = "<div>TEST</div>";
items.push({index:i,content:content});
}
$scope.items = items;

var app = angular.module('MyApp',['ngSanitize','ui.bootstrap']);

Аккордеон работает, но html не отображается в теге p.

В чем может быть проблема?

РЕДАКТИРОВАТЬ

Если я попробую что-то вроде:

<div ng-bind-html="to_trusted(item.content)"></div>

И добавьте функцию в контроллер:

$scope.to_trusted = function(html_code)
    {
    console.log(html_code);
    return $sce.trustAsHtml(html_code);
    }

Ничего не меняется, и в консоли я получаю много «неопределенных»!


person JackTurky    schedule 30.01.2014    source источник


Ответы (1)


Это связано с тем, что содержимое HTML объявлено Angular небезопасным из-за его строгого контекстного экранирования. .

Другой ответ SO уже ясно объясняет, как это можно решить: HTML-инъекция, то есть, если вы используете Angular версии 1.2.0. или вверх.

Я создал Plunkr, соответствующий вашему случаю.

person Marco van Dijk    schedule 30.01.2014
comment
Какую угловую версию вы используете? Я воспроизвел ваш код в Plunkr, и он работает. Можете ли вы создать Plunkr с вашим кодом? - person Marco van Dijk; 30.01.2014
comment
я использую AngularJS v1.2.9 - person JackTurky; 30.01.2014