我的$scope
包含以下items
$scope.items= [
{ body : '<span> value </span>' },
{ body : '<span> whatever </span>' }
];
当我尝试
时<li ng-repeat="item in items">{{item.body}}</li>
HTML输出是:
<li><span> value </span></li>
<li><span> whatever </span></li>
然后浏览器上显示的文字是这样的:
<span> value </span>
<span> whatever </span>
如何逃避跨度并将其解析为HTML?
修改:已接受答案中的链接不再适用于最新版本。目前this is how you do it
答案 0 :(得分:3)
如果您完全确定您创建的代码不能包含来自用户数据的任何漏洞,请查看ngBindHtmlUnsafe:
http://docs.angularjs.org/api/ng.directive:ngBindHtmlUnsafe
如果您需要清理可能有害的html片段,请查看Sanitize模块中的ngBindHtml:
http://docs.angularjs.org/api/ngSanitize.directive:ngBindHtml
答案 1 :(得分:0)
接受的答案中的链接不再适用于当前版本的Angular。 如果你确定已经消毒了,你可以做这样的事情来禁用转义。更新了严格上下文转义的链接:https://docs.angularjs.org/api/ng/service/%24sce
var app = angular.module('search-app')
.config(['$sceProvider', function ($sceProvider) {
$sceProvider.enabled(false) ;// global override
}]);
app.controller('SearchController', function ($scope, $http) {
}