AngularJS $sce.trustAsHtml() 重标记数据
AngularJS $sce.trustAsHtml() on heavily tagged data
我知道 $sce.trustAsHtml() 可以让 AngularJS 按原样显示 HTML。坐立不安之后,我意识到这并非在所有情况下都有效。特别是当该数据中包含其他标签时。
如果我使用简单的 HTML 标签(br、b 等),它工作正常。但是,我有很多行数据如下所示:
<div class="question">This is question1</div>
<div class="answer"> this is an answer1</div>
<div class="question">This is question2</div>
<div class="answer"> this is an answer2</div>
上面的条目是 MySQL 数据库中文本列的示例。执行以下操作,Angular 呻吟:
Javascript:
$http.get(site_url).success(function(response) {
$scope.textClean = $sce.trustAsHtml(response.text);
});
HTML:
<div class="box" ng-bind-html="textClean"></div>
我试过将它存储在其他标签中,但不行。任何可行的解决方法的想法?当然 Angular 可以解决这个问题。如果我删除标签,它会显示,当然,w/o 需要的特征。
编辑:哇——我真是疏忽了。好吧,我想通了这个问题。我通过 PHP 脚本从 MySQL 数据库获取数据。 PHP 以 JSON 格式输出。由于 class 包含引号,因此错误发生在 $http.get() 部分......而不是在打印中。我进行了一些调试,使我相信并非如此,但显然我错了。谢谢你的时间。
我创建了一个 plunker,显示
<div class="question">This is question1</div>
<div class="answer"> this is an answer1</div>
<div class="question">This is question2</div>
<div class="answer"> this is an answer2</div>
可以通过$sce.trurstAsHtml()
解析
如果您的回复包含任何 angular 指令,则该 angular 指令将不起作用。为此,您需要使用 $compile 服务。
我知道 $sce.trustAsHtml() 可以让 AngularJS 按原样显示 HTML。坐立不安之后,我意识到这并非在所有情况下都有效。特别是当该数据中包含其他标签时。
如果我使用简单的 HTML 标签(br、b 等),它工作正常。但是,我有很多行数据如下所示:
<div class="question">This is question1</div>
<div class="answer"> this is an answer1</div>
<div class="question">This is question2</div>
<div class="answer"> this is an answer2</div>
上面的条目是 MySQL 数据库中文本列的示例。执行以下操作,Angular 呻吟:
Javascript:
$http.get(site_url).success(function(response) {
$scope.textClean = $sce.trustAsHtml(response.text);
});
HTML:
<div class="box" ng-bind-html="textClean"></div>
我试过将它存储在其他标签中,但不行。任何可行的解决方法的想法?当然 Angular 可以解决这个问题。如果我删除标签,它会显示,当然,w/o 需要的特征。
编辑:哇——我真是疏忽了。好吧,我想通了这个问题。我通过 PHP 脚本从 MySQL 数据库获取数据。 PHP 以 JSON 格式输出。由于 class 包含引号,因此错误发生在 $http.get() 部分......而不是在打印中。我进行了一些调试,使我相信并非如此,但显然我错了。谢谢你的时间。
我创建了一个 plunker,显示
<div class="question">This is question1</div>
<div class="answer"> this is an answer1</div>
<div class="question">This is question2</div>
<div class="answer"> this is an answer2</div>
可以通过$sce.trurstAsHtml()
解析如果您的回复包含任何 angular 指令,则该 angular 指令将不起作用。为此,您需要使用 $compile 服务。