删除ng-bind-html-unsafe后,如何注入HTML?

我正在尝试使用$sanitizeprovider和ng-bind-htm-unsafe指令来允许我的控制器将HTML注入DIV。

但是,我无法使其正常工作。

<div ng-bind-html-unsafe="{{preview_data.preview.embed.html}}"></div>

我发现这是因为它已从AngularJS中删除(谢谢)。

但是没有ng-bind-html-unsafe,我得到这个错误:

http://errors.angularjs.org/undefined/$sce/unsafe

ANear2020/04/02 17:34:47

我有类似的问题。仍然无法从托管在github上的markdown文件中获取内容。

在app.js中的$ sceDelegateProvider中设置了白名单(添加了github域)后,它的工作就像一个魅力。

描述:如果您从其他网址加载内容,请使用白名单而不是包装为受信任的内容。

Docs: $ sceDelegateProviderngInclude(用于获取,编译和包括外部HTML片段)

阳光Itachi村村2020/04/02 17:34:47

您无需在ng-bind-html-unsafe中使用{{}}:

<div ng-bind-html-unsafe="preview_data.preview.embed.html"></div>

这是一个示例:http : //plnkr.co/edit/R7JmGIo4xcJoBc1v4iki?p=preview

{{}}运算符本质上只是ng-bind的简写,因此您尝试的操作等于绑定内的绑定,这是行不通的。

小卤蛋2020/04/02 17:34:47

对我来说,最简单,最灵活的解决方案是:

<div ng-bind-html="to_trusted(preview_data.preview.embed.html)"></div>

并将功能添加到您的控制器:

$scope.to_trusted = function(html_code) {
    return $sce.trustAsHtml(html_code);
}

不要忘记添加$sce到控制器的初始化中。