我想将值附加为角度
中的html<div class="storycontent" ng-class="{show: show}">
<a href="#/profile?{{review.id}}">{{review.name}}</a>: {{review.story}}
</div>
{{review.story}}
中的<b>hello</b><i>something</i>
有<b>hello</b><i>something</i>
等值
问题是它将内容显示为$(".content").each(function () {
$(this).html($(this).text())
});
而不是 hello 某些(即未应用样式)
我必须使用jQuery来执行此操作
.html()
如何直接以.text()
代替{{1}}添加角度?
答案 0 :(得分:4)
你甚至不需要Jquery。 ng-bind-html
可以自己动手。
<div class="storycontent" ng-class="{show: show}">
<a href="#/profile?{{review.id}}">{{review.name}}</a>:
<span ng-bind-html="review.story"></span>
</div>
此外,当您获得该值时,最好在控制器上添加它。因为没有这个,ng-bind-hmtl
是不安全的。
$scope.review.story = $sce.trustAsHtml($scope.review.story);
注意: $sce
必须在您的控制器中注入。它不能直接使用angularJS。
.controller('ControllerName', ['$scope', '$sce', function($scope, $sce) {...
答案 1 :(得分:2)
您可以在此处使用指令ngBindHtml,更多信息:https://docs.angularjs.org/api/ng/directive/ngBindHtml
此外,您必须记住,在绑定html之前,您必须确保Angular是安全的。你可以使用ngSanitize和$ sce.trustAsHtml函数:
答案 2 :(得分:1)
使用ng-bind-html="expression"
表达式是你的html
答案 3 :(得分:1)
您可以在角度中使用ng-bind-html
。
按文档: ng-bind-html
评估表达式并将生成的HTML插入到 元素以安全的方式。默认情况下,生成的HTML内容将 使用$ sanitize服务进行消毒。利用这个 功能,确保$ sanitize可用,例如,通过 包括ngSanitize在你的模块的依赖项中(不在核心中) 角)。为了在模块的依赖项中使用ngSanitize, 你需要包括&#34; angular-sanitize.js&#34;在你的申请中。
使用:ng-bind-html="review.story">
参考docs