加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs ng-bind-html 指令 对html标签转译

发布时间:2020-12-17 09:58:48 所属栏目:安全 来源:网络整理
导读:文章参考 http://www.tuicool.com/articles/2eIrIz http://www.runoob.com/angularjs/ng-ng-bind-html.html 在工作中遇到问题:用户在后台添加一篇新闻,在数据库中存储的是HTML代码,从数据库查询出来之后结果把HTML代码显示出来。 解决办法:使用ng-bind-h

文章参考

http://www.tuicool.com/articles/2eIrIz

http://www.runoob.com/angularjs/ng-ng-bind-html.html

在工作中遇到问题:用户在后台添加一篇新闻,在数据库中存储的是HTML代码,从数据库查询出来之后结果把HTML代码显示出来。

解决办法:使用ng-bind-html 指令,能够对html代码的标签转译,在浏览器中显示

ng-bind-html 指令会自动过滤掉标签内的样式?

所谓sce即“Strict Contextual Escaping”的缩写。翻译成中文就是“严格的上下文模式”也可以理解为安全绑定吧。

$sce干的事情来看就是将语境中存在的跨站攻击的风险给干掉.

我们返回的内容中包含一系列的html标记,它可以通过使用$sce.trustAsHtml()。该方法将值转换为特权所接受并能安全地使用“ng-bind-html”。所以,我们必须在我们的控制器中引入$sce服务.

代码如下

/**
 * 公司简介service
 * */
angular.module("hkApp").factory("companyIntroduceIndexCompanyService",["$http","$sce",function($http,$sce){
    return {
    	//获取公司简介
		getCompanyIntroduce:function(__scope__){
			var url = "/index.php/Admin/Page/companyPage.html";
			var formData = {
				id:2
			};
			 $http.post(url,formData)
             .success(function(response,status,headers,config){
             	if(response.status == 1){
             		
             		//__scope__.content = response.data.content;
             		__scope__.content = $sce.trustAsHtml(response.data.content);
             	}
         	});
		}
    }
}]);

【1】angular源码分析:angular中入境检察官$sce

【2】野兽的 Angular 学习 - -scesce和sceDelegate

【3】$sce官方手册

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读