详解Angular.js数据绑定时自动转义html标签及内容

 更新时间:2017年03月30日 11:52:52   作者:我要成为酷酷的人  
本篇文章主要介绍了详解Angular.js数据绑定时自动转义html标签及内容 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

angularJS在进行数据绑定时默认是以字符串的形式数据,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止html标签的注入攻击,但有时候需要,特别是从数据库读取带格式的文本时,无法正常的显示在页面中。

而要对html进行转义,则需要在数据绑定的html标签中使用ng-bind-html属性,该属性依赖与$sanitize,也就是需要引入angular-sanitize.js文件,并在module定义时注入该服务ngSanitize。比如:

html:

<span ng-controller = "myCtr" ng-bind-html = "htmlStr"></span>

javascript:

function myCtr($scope){

  $scope.htmlStr = '<p style="color:white;background:#f60;"></p>';

};

这样可以实现html转义,但是有个问题是style这种标签会被angularJS认为是不安全的所以统统自动过滤掉,而为了保留这些就需要开启非安全模式。

如何让自动加载的数据转义html标签呢?实际上还有一种绑定方式:

html:

<div ng-repeat = "article in articles">

  <div class="panel-heading">

    <h4><b>{{article.title}}</b></h4>

  </div>

  <div class="panel-body">

    <article id="word-display" ng-bind-html="article.content | trustHtml">

    </article>

  </div>

</div>

javascript:

success(function(data){

  $scope.articles = data;

});

myApp.filter('trustHtml',function($sce){

  return function(input){

    return $sce.trustAsHtml(input);

  }

});

其中$sce是angularJS自带的安全处理模块,$sce.trustAsHtml(input)方法便是将数据内容以html的形式进行解析并返回。将此过滤器添加到ng-bind-html所绑定的数据中,便实现了在数据加载时对与html标签的自动转义。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Angular2 组件交互实例详解

    Angular2 组件交互实例详解

    Angular2应用程序实际上是有很多父子组价组成的组件树,因此,了解组件之间如何通信,特别是父子组件之间,对编写Angular2应用程序具有十分重要的意义。下面通过本文给大家介绍Angular2 组件交互知识,感兴趣的朋友一起看看吧
    2017-08-08
  • 详解angularjs4部署文件过大解决过程

    详解angularjs4部署文件过大解决过程

    这篇文章主要介绍了详解angularjs4部署文件过大解决过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法

    AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法

    这篇文章主要介绍了AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法,结合实例形式分析AngularJS下拉滚动插件ngInfiniteScroll的下载、功能、属性及相关使用方法,需要的朋友可以参考下
    2016-12-12
  • 解析Angular 2+ 样式绑定方式

    解析Angular 2+ 样式绑定方式

    这篇文章主要介绍了解析Angular 2+ 样式绑定方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • AngularJS 视图详解及示例代码

    AngularJS 视图详解及示例代码

    本文主要介绍AngularJS 视图,这里整理了相关知识,并附代码示例和实现效果图,有兴趣的小伙伴可以参考下
    2016-08-08
  • AngularJS使用ngMessages进行表单验证

    AngularJS使用ngMessages进行表单验证

    这篇文章主要介绍了AngularJS使用ngMessages进行表单验证的相关资料,需要的朋友可以参考下
    2015-12-12
  • 浅谈Angular路由守卫

    浅谈Angular路由守卫

    这篇文章主要介绍了浅谈Angular路由守卫,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • AngularJS路由Ui-router模块用法示例

    AngularJS路由Ui-router模块用法示例

    这篇文章主要介绍了AngularJS路由Ui-router模块用法,结合实例形式分析了Ui-router模块的功能、使用方法及相关注意事项,需要的朋友可以参考下
    2017-05-05
  • Angular实现图片裁剪工具ngImgCrop实践

    Angular实现图片裁剪工具ngImgCrop实践

    本篇文章主要介绍了Angular实现图片裁剪工具ngImgCrop实践,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • 详解angularJs指令的3种绑定策略

    详解angularJs指令的3种绑定策略

    本篇文章主要介绍了angularJs指令的3种绑定策略,详细的介绍了@=&的用法和实例,有兴趣的可以了解一下。
    2017-04-04

最新评论