javascript – 如何将ngOptions用于包含HTML实体的字符串?

前端之家收集整理的这篇文章主要介绍了javascript – 如何将ngOptions用于包含HTML实体的字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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演示

原文链接:https://www.f2er.com/js/159801.html

猜你在找的JavaScript相关文章