angular怎么显示html,angularJS 显示带html的文本

d53ba8090a82f3e002d80796de576c67.png

1.首先定义一个angularJS的过滤器,作为处理html文本的通用过滤器。

define([ "app",], function (app) {

app().registerFilter("trusted", ["$sce", function ($sce) {

return function (html) {

if (typeof html== 'string') //判断类型为字符串

return $sce.trustAsHtml(html);

return html;

}

}])

});

注:

sce 即 strict contextual escaping,严格模式下的上下文隔离,也可以理解为安全绑定,类似于浏览器的同源加载策略,不能加载不同域下的文件及不鞥呢使用不和要求的协议,angularJS为了避免安全漏洞,有些ng-src或ng-include都会进行安全检查,避免了一些跨站的XSS。angularJS是默认开启sce的,所以html文本得使用授权信任加载的html文本。

$sce是angularJS自带的安全处理模块,$sce.trustAsHtml()方法将值转换为特权所接受并能安全地使用“ng-bind-html”,就实现在数据加载时对于html标签的自动转义。

2.使用ng-bind-html将html文本绑定到页面上,同时调用过滤器。

注:

angularJS在进行数据绑定时默认是会以文本的形式输出,也就是数据中的html标签不进行转义照单全收,这样提高了安全性,防止了html标签中的注入攻击,但有些时候还是需要的,特别是从数据库读取带格式的文本时,无法正常的显示在页面中。而要对html进行转义,则要在数据绑定的html标签中使用ng-bind-html属性,该属性依赖与$sanitize,也就是需要引入angular-sanitize.js文件,并在module定义时注入该服务ngSanitize。

有兴趣的小伙伴,欢迎各位关注个人微信公众号 Wrain。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值