我正在尝试使用$sanitize
provider和ng-bind-htm-unsafe
指令来允许我的控制器将HTML注入DIV。
但是,我无法使其正常工作。
<div ng-bind-html-unsafe="{{preview_data.preview.embed.html}}"></div>
我发现这是因为它已从AngularJS中删除(谢谢)。
但是没有ng-bind-html-unsafe
,我得到这个错误:
我正在尝试使用$sanitize
provider和ng-bind-htm-unsafe
指令来允许我的控制器将HTML注入DIV。
但是,我无法使其正常工作。
<div ng-bind-html-unsafe="{{preview_data.preview.embed.html}}"></div>
我发现这是因为它已从AngularJS中删除(谢谢)。
但是没有ng-bind-html-unsafe
,我得到这个错误:
您无需在ng-bind-html-unsafe中使用{{}}:
<div ng-bind-html-unsafe="preview_data.preview.embed.html"></div>
这是一个示例:http : //plnkr.co/edit/R7JmGIo4xcJoBc1v4iki?p=preview
{{}}运算符本质上只是ng-bind的简写,因此您尝试的操作等于绑定内的绑定,这是行不通的。
对我来说,最简单,最灵活的解决方案是:
<div ng-bind-html="to_trusted(preview_data.preview.embed.html)"></div>
并将功能添加到您的控制器:
$scope.to_trusted = function(html_code) {
return $sce.trustAsHtml(html_code);
}
不要忘记添加$sce
到控制器的初始化中。
我有类似的问题。仍然无法从托管在github上的markdown文件中获取内容。
在app.js中的$ sceDelegateProvider中设置了白名单(添加了github域)后,它的工作就像一个魅力。
描述:如果您从其他网址加载内容,请使用白名单而不是包装为受信任的内容。
Docs: $ sceDelegateProvider和ngInclude(用于获取,编译和包括外部HTML片段)