今天尝试用 Rails 做后端提供 JSON 格式的数据, AngularJS 做前端处理 JSON 数据,其中碰到 AngularJS 获取的是一段 HTML 文本,如果直接使用 data-ng-bind 的话是被转义过的,使用 data-ng-bind-html 则可以取消转义。
但是直接使用 data-ng-bind-html 的话会提示错误
在我这里 Angular 通过 API 或取的所有文章中,每篇文章有个 html_body 属性是经过 Markdown 或者 Org 渲染过的 HTML 片段。
在通过 API 获取 JSON 数据后,使用 AngularJS 提供的 angular.forEach 方法对每个 post 的 html_body 进行标记,并将结果保存为 trustedBody,然后在 HTML 中使用 data-ng-bind-html="post.trustedBody" 即可以取消转义。
AngularJS 部分
$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(); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。