angular ng-bind-html异常Attempting to use an unsafe value in a safe context处理


风晓
风晓 2024-01-03 00:21:40 52819 赞同 0 反对 0
分类: 资源
在angular中使用ng-data-html渲染dom时,遇到了一个Attempting to use an unsafe value in a safe context错误,官方给出的理由是‘试图在安全的上下文中使用不安全的值’。

导致此问题的实际原因是,返回数据中包含了html模板,angular会觉得在渲染数据中直接插入html不安全。

我们可以通过angular内置的$sce服务的trustAsHtml方法对不安全的数据添加信任。

看个例子:

HTML:

复制代码
<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body ng-controller="myCtrl as vm">
    <ul>
        <li ng-repeat="item in vm.testData">
            <span ng-bind-html="item.text"></span>
        </li>
    </ul>
    <script src="modules/angular.js"></script>
    <script src="demo.js"></script>
</body>
</html>
复制代码

JS:

复制代码
angular.module('myApp', [])
    .controller('myCtrl', ['$sce', function ($sce) {
        let vm = this;
        vm.testData = [{
                text: '<b>测试1</b>'
            },
            {
                text: '<b>测试2</b>'
            }
        ];
        vm.testData.forEach(ele => {
            ele.text = $sce.trustAsHtml(ele.text);
        });
    }]);
复制代码

测试数据中的text包含了html,通过内置$sce.trustAsHtml()方法处理text数据即可解决此问题了。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  128
统信桌面专业版【全盘安装UOS系统】介绍  123
银河麒麟桌面操作系统安装佳能打印机驱动方法  116
银河麒麟桌面操作系统 V10-SP1用户密码修改  106
麒麟系统连接打印机常见问题及解决方法  11
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
麒麟系统连接打印机常见问题及解决方法 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益210.13元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!