我正在使用ngOptions来构建一个选择菜单,但我的一个标签中有一个
HTML实体和& amp ;.该标签显示为Books& amp;东西不是书籍&东西.我的玉是这样的:
select(ng-show="isType === 'select'",id="{{id}}",ng-model="model",ng-options="o.id as o.label for o in options")
如何才能正确显示HTML实体?
更新
我正在尝试萨尔的答案:
select(ng-show="isType === 'select'",ng-model="model") option(ng-repeat="o in options",ng-bind-html="o.label",value="{{o.id}}")
这将显示正确的html实体,但不再根据模型选择正确的选项.例如,请参见http://jsfiddle.net/ucLvjvkn/1/.
解决方法
一种解决方法是使用ng-repeat和ng-bind-html(包含在
ngSanitize中)代替ng-options.这是一个有效的例子
var app = angular.module('app',['ngSanitize']);
<option ng-repeat="options in options" ng-bind-html="options.text" value="{{options.text}}"></option>
JSFiddle Link – 工作演示
此外,如果必须使用ng-options,请使用以下帮助程序函数在绑定之前首先解码您的值
function htmlDecode(input) { var e = document.createElement('div'); e.innerHTML = input; return e.childNodes[0].nodeValue; }
JSFiddle Link – ng-options演示