追加为角色的html

时间:2015-08-14 07:01:21

标签: javascript jquery html angularjs

我想将值附加为角度

中的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}}添加角度?

4 个答案:

答案 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函数:

https://docs.angularjs.org/api/ng/service/$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