0

我有点卡住了,我从一个带有角度、JSON 的端点获取数据,有时这些数据可能是 HTML 代码,我读到了它,我发现如果我想将该信息解析为 HTML,没有"",我必须使用JSON.parse()

问题是现在代码被转义并在我的模板中调用它之前引发错误。http://screencast.com/t/zledZ6rBod

我可以看到为什么会发生这种情况,但是如何在我的模板中输出可解释的 HTML 标记?

4

2 回答 2

1

我认为有一种更简单的方法来“清理”一个 HTML 字符串。

  1. 导入angular-sanitize.min.js您的 HTML。
  2. 将其添加为依赖项var app = angular.module('myapp', ['ngSanitize']);
  3. 然后使用ng-bind-html="HTML_STRING_VAR_HERE"

这样你就不必创建一个函数来清理,你可以直接传递变量。

你可以在这个 plunker 中看到一个例子。http://plnkr.co/edit/4FBUSooNMpqk1rYAZYdZ
让我知道你的想法。

于 2014-04-21T20:09:22.540 回答
0

答案是使用 $sce,严格上下文转义,这里是文档: http : //docs.angularjs.org/api/ng/service/ $sce#methods_trustashtml

对我来说,它是这样工作的:

在控制器中:

$scope.theHtml = '<div class="red">Content</div>'; $scope.parseHtml = function() { return $sce.trustAsHtml($scope.theHtml); };

在模板中:

<div ng-bind-html="parseHtml()"></div>

于 2014-03-25T13:34:00.293 回答