我正在使用从DB检索的数据填充元素的内容。这是在页面的控制器内完成的。 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 :(得分:0)
如果将字符串放在花括号<select>{{some html}}</select>
内,它将显示为文字字符串。
相反,您需要使用ng-bind-html
属性来显示html。
<select ng-bind-html="your html"></select>
注意:这只适用于受信任的html。
答案 1 :(得分: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'];
});
大小来自于无关紧要,可以像这里一样是静态的,也可以通过与数据库通信的服务来提供。这只是为了演示输出<select>