angular用$sce服务来过滤HTML标签

angular js的强大之处之一就是他的数据双向绑定这一牛B功能,我们会常常用到的两个东西就是ng-bind和针对form的ng-model。但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签.对于angular 1.2一下的版本我们必须要使用$sce这个服务来解决我们的问题。它可以通过使用$sce.trustAsHtml()。该方法将值转换为特权所接受并能安全地使用“ng-bind-html”。

 1   .controller(‘HealthEducationDetailCtrl‘, [‘$sce‘,‘$scope‘, ‘Storage‘, ‘$state‘, ‘HomeService‘,‘$stateParams‘,‘$ionicTabsDelegate‘,
 2     function ($sce,$scope, Storage, $state, HomeService,$stateParams,$ionicTabsDelegate) {
 3       $scope.$on(‘$ionicView.beforeEnter‘, function() {
 4         //关闭所有的tab选项卡
 5         $ionicTabsDelegate.showBar(false);
 6       });
 7
 8       //保证健康教育详情页面可以显示各自的标题
 9       $scope.title=$stateParams.ARTICLE_TITLE;
10       var ARTICLE_ID=$stateParams.ARTICLE_ID;
11       var param={ARTICLE_ID:ARTICLE_ID};
12       HomeService.getHealthArticleDetail(param);
13       //加载健康教育详情
14       $scope.healthArticleDetail=[];
15       $scope.$on(‘HomeService.getHealthArticleDetail‘,function (event, data) {
16         $scope.healthArticleDetail=data;
17         //richTextReplace是解析html标识符
18         // $scope.trustHtml=Storage.richTextReplace($scope.healthArticleDetail.ARTICLE_CONTENTS);
19         $scope.trustHtml=$sce.trustAsHtml($scope.healthArticleDetail.ARTICLE_CONTENTS);
20       })
21
22       $scope.$on(‘$ionicView.beforeLeave‘, function() {
23         //打开所有tab选项卡
24         $ionicTabsDelegate.showBar(true);
25       });
26     }])

html code:

1 <ion-view view-title="{{title}}" ng-view-title="title">
2   <ion-content >
3     <div style="width: 100%; padding: 10px 15px;">
4       <div ng-bind-html="trustHtml"></div>
5     </div>
6   </ion-content>
7 </ion-view>
时间: 2024-08-09 06:35:31

angular用$sce服务来过滤HTML标签的相关文章

【转载】AngularJS 用$sce服务来过滤HTML标签,解决无法正确显示后台传递的html标签

angular js的强大之处之一就是他的数据双向绑定这一牛B功能,我们会常常用到的两个东西就是ng-bind和针对form的ng-model.但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签.如: $scope.currentWork.description = “hello,<br><b>今天我们去哪里?</b>” 我们用ng-bind-html这样的指令来绑定,结果却不是我们想要的.是这样的 hello,<br><s

angular中的ng-bind-html指令和$sce服务

angular js的强大之处之一就是他的数据双向绑定这一牛B功能,我们会常常用到的两个东西就是ng-bind和针对form的ng-model.但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签.如: $scope.currentWork.description = “hello,<br><b>今天我们去哪里?</b>” 我们用ng-bind-html这样的指令来绑定,结果却不是我们想要的.是这样的 hello, 今天我们去哪里? 怎么办呢?

深入理解AngularJS中的ng-bind-html指令和$sce服务

angular js的强大之处之一就是他的数据双向绑定这一牛B功能,我们会常常用到的两个东西就是ng-bind和针对form的ng-model.但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签.如: $scope.currentWork.description = "hello,<br><b>今天我们去哪里?</b>" 我们用ng-bind-html这样的指令来绑定,结果却不是我们想要的.是这样的 hello, 今天我们

angular ng-bind-html $sce.trustAsHtml

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

angular的uiRouter服务学习(3)

本篇接着上一篇 angular的uiRouter服务学习(2) 继续讲解uiRouter的用法 本篇主要讲解uiRouter的多个命名的视图 我们可以给ui-view元素添加ui-view的值来给它命名,这样,一个视图模板里就可以有多个ui-view标签. 比如下面这个应用,它需要动态的填充一个图表,图表里有一些表格数据,筛选项,等: 给视图命名,需要在状态里定义views属性. views的属性值为一个对象. views属性会覆盖template属性: 如果给状态定义了views属性,那么状态

Perl如何过滤html标签

比如一串字符串 <div><b>123</b></div> 如果只想拿到123怎么办呢? 用perl的正则表达式可以很容易的做到. $str =~  s/<([a-zA-Z]\w*)(\s+\S+)*>(.+?)<\/\1>/$3/sg; 这种只能过滤掉左右对称的标签,如果你的字符串里的html标签不对称,或者是有缺陷,这种方式就做不了了. 如果上边的看不懂,那看个简单的: $retPromotionInfo=~s/<.*?&g

ng-bind-html指令和$sce服务

1 <!--在我们的控制器中引入$sce服务,该方法将值转换为特权所接受并能安全地使用“ng-bind-html”--> 2 $scope.pm.desc = d.Desc && $sce.trustAsHtml(d.Desc.replace(/\\n/ig, "<br/>")); 3 4 <dd ng-bind-html="pm.desc"></dd>

asp.net过滤HTML标签,只保留换行与空格

自己从网上找了一个过滤HTML标签的方法,我也不知道谁的才是原创的,反正很多都一样.我把那方法复制下来,代码如下: /// <summary> /// 去除HTML标记 /// </summary> /// <param name="NoHTML">包括HTML的源码 </param> /// <returns>已经去除后的文字</returns> public static string NoHTML(strin

ASP.NET过滤HTML标签只保留换行与空格的方法

这篇文章主要介绍了ASP.NET过滤HTML标签只保留换行与空格的方法,包含网上常见的方法以及对此方法的改进,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲述了ASP.NET过滤HTML标签只保留换行与空格的方法.分享给大家供大家参考.具体分析如下: 自己从网上找了一个过滤HTML标签的方法,我也不知道谁的才是原创的,反正很多都一样.我把那方法复制下来,代码如下: /// <summary> /// 去除HTML标记 /// </summary> /// <para