Я заполняю содержимое элемента, используя данные, полученные из БД. Это делается в контроллере страницы. 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);
Какие подсказки вы можете предложить?
Благодарю.
Если вы поместите строку внутри фигурных скобок <select>{{some html}}</select>
она будет отображаться как буквальная строка.
Вместо этого вам нужно использовать атрибут ng-bind-html
для отображения html.
<select ng-bind-html="your html"></select>
Примечание. Это будет работать только с надежным html.
Для вашего <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>