Angularjs с $ sce.trustAsHtml не работает

0

Я заполняю содержимое элемента, используя данные, полученные из БД. Это делается в контроллере страницы. HTML выглядит просто:

  <select class="form-control" id="maxsize" style="width:50px">

     {{List_of_Possible_Sizes}}

  </select>

Внутри контроллера строка "List_of_Possible_Sizes" правильно построена (я знаю, потому что я заменил {{...}} результатом JS и получил правильный результат), но при просмотре элементов в браузере я вижу полная строка, сгенерированная из JS как фактическая строка (например, что-то вроде:

 " 
   <option value.....</option><option....>...."

и это несмотря на то, что задание:

List_of_Possible_Sizes = $ sce.trustAsHtml(MyString);

Какие подсказки вы можете предложить?

Благодарю.

  • 0
    Включение кода вашего контроллера будет немного полезно. Рассматривали ли вы использовать ng-repeat, чтобы выплевывать ваши варианты?
Теги:

2 ответа

0
Лучший ответ

Если вы поместите строку внутри фигурных скобок <select>{{some html}}</select> она будет отображаться как буквальная строка.

Вместо этого вам нужно использовать атрибут ng-bind-html для отображения html.

<select ng-bind-html="your html"></select>

Примечание. Это будет работать только с надежным html.

  • 0
    Да, это сработало !!!! Спасибо за быстрый ответ.
0

Для вашего <select> я бы подошел к нему одним из двух способов: оба находятся в этом фрагменте:

  <div ng-controller="myController">
    <select class="form-control" id="maxsize" style="width:50px">
      <option ng-repeat="size in sizes" value="size">{{size}}</option>  
    </select>

   <select ng-options="size as size for size in sizes" ng-model="selected"></select>
  </div>

Контроллер для этого примера:

angular.module('app', [])
        .controller('myController', function($scope){
          $scope.sizes = ['S', 'M', 'L', 'XL'];
        });

Там, где размеры поступают, не имеет значения, может быть статичным, как здесь, или передаваться через службы, разговаривающие с db. Это просто демонстрация нескольких способов вывода вашего <select>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню