AngularJS中取消对HTML片段转义的方法例子

 更新时间:2015年01月04日 11:58:57   投稿:junjie  
这篇文章主要介绍了AngularJS中取消对HTML片段转义的方法例子,在一些需要显示HTML的地方,就要取消AngularJS的转义,本文就介绍了这种方法,需要的朋友可以参考下

今天尝试用 Rails 做后端提供 JSON 格式的数据, AngularJS 做前端处理 JSON 数据,其中碰到 AngularJS 获取的是一段 HTML 文本,如果直接使用 data-ng-bind 的话是被转义过的,使用 data-ng-bind-html 则可以取消转义。

但是直接使用 data-ng-bind-html 的话会提示错误

复制代码 代码如下:

Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context.

HTML 片段需要先使用 $sce.trustAsHtml(html_in_string) 将标记为信任,然后才可以使用 data-ng-bind-html="html_in_string" 取消转义。

在我这里 Angular 通过 API 或取的所有文章中,每篇文章有个 html_body 属性是经过 Markdown 或者 Org 渲染过的 HTML 片段。

在通过 API 获取 JSON 数据后,使用 AngularJS 提供的 angular.forEach 方法对每个 post 的 html_body 进行标记,并将结果保存为 trustedBody, 然后在 HTML 中使用 data-ng-bind-html="post.trustedBody" 即可以取消转义。

AngularJS 部分

复制代码 代码如下:

Blog.controller('PostsController', function ($scope, $http, $sce) {
  $scope.posts = [];

  $scope.syncPosts = function () {
    var request = $http.get('http:/localhost:3000/posts.json');
    request.success(function (response) {
      $scope.posts = angular.forEach(angular.fromJson(response), function (post) {
        post.trustedBody = $sce.trustAsHtml(post.html_body);
      });
    });
  };

  $scope.syncPosts();
});


HTML 部分
复制代码 代码如下:

<div class="post-body markup-body" data-ng-bind-html="post.trustedBody"></div>

相关文章

  • 详解AngularJS中$filter过滤器使用(自定义过滤器)

    详解AngularJS中$filter过滤器使用(自定义过滤器)

    这篇文章主要介绍了详解AngularJS中$filter过滤器使用(自定义过滤器)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Angular 1.x个人使用的经验小结

    Angular 1.x个人使用的经验小结

    这篇文章主要给大家介绍了关于Angular 1.x个人使用的一些经验,属于一些基础入门教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • AngularJS基础 ng-focus 指令简单示例

    AngularJS基础 ng-focus 指令简单示例

    本文主要介绍AngularJS ng-focus 指令,这里整理了ng-focus的一些基础资料,并附一个实例代码,有需要的小伙伴参考下
    2016-08-08
  • Angular2中如何使用ngx-translate进行国际化

    Angular2中如何使用ngx-translate进行国际化

    本篇文章主要介绍了Angular2中使用ngx-translate进行国际化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • angularjs自定义ng-model标签的属性

    angularjs自定义ng-model标签的属性

    这篇文章主要介绍了angularjs自定义ng-model标签的属性的相关资料,需要的朋友可以参考下
    2016-01-01
  • AngularJS实现使用路由切换视图的方法

    AngularJS实现使用路由切换视图的方法

    这篇文章主要介绍了AngularJS实现使用路由切换视图的方法,结合学生信息管理系统为例分析了使用controllers.js控制器来切换视图的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Angular应用程序的Hydration基本概念详解

    Angular应用程序的Hydration基本概念详解

    这篇文章主要为大家介绍了Angular应用程序的Hydration基本概念详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • AngularJS转换响应内容

    AngularJS转换响应内容

    这篇文章主要介绍了AngularJS转换响应内容 的相关资料,需要的朋友可以参考下
    2016-01-01
  • AngularJS模态框模板ngDialog的使用详解

    AngularJS模态框模板ngDialog的使用详解

    这篇文章主要介绍了AngularJS模态框模板ngDialog的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 利用CSS3在Angular中实现动画

    利用CSS3在Angular中实现动画

    这篇文章主要介绍了如何利用CSS3在Angular中实现动画效果,对angular动画相关知识感兴趣的朋友一起学习吧
    2016-01-01

最新评论