Angularjs表达

时间:2015-07-29 12:34:02

标签: html angularjs

我正在尝试从视图中的数据中显示html标记。我有一个数据level$scope.level="<b>i should be bold</b>",当数据在模板中给出时,如下所示应尊重html标签以及

<div ng-controller="MyCtrl" >
{{level}}
</div> 

它应该是粗体而不使用

<div ng-controller="MyCtrl" id="tableForVxp" class="dataDisplay2">
<b>{{level}}</b>
</div>

但是到目前为止我已经尝试过了,我无法实现它。它也在视图中显示标记。这个问题在JSFiddle Here中有说明。

无论如何都要实现它。或者我完全错了吗?

4 个答案:

答案 0 :(得分:2)

您可以使用 ngBindHtml 指令来计算表达式,并将生成的HTML插入到元素中。别忘了包含 ngSanitize 指令。

  

https://docs.angularjs.org/api/ng/directive/ngBindHtml

示例:

app.js

angular.module('app', ['ngSanitize'])
.controller('Controller', function($scope) {
  $scope.data = '<b>my text</b>'
});

的index.html

<div ng-controller="Controller">
 <p ng-bind-html="data"></p>
</div>

答案 1 :(得分:1)

您可以使用ng-bind-html-unsafe

<div ng-controller="MyCtrl" id="tableForVxp" class="dataDisplay2">
    <div ng-bind-html-unsafe="level"></div>
</div>

不安全,因为通常不应在控制器内修改DOM。

答案 2 :(得分:0)

为什么不能将<b>标记移动到标记然后只插入'level'的值?

http://jsfiddle.net/u37xtpjd/2/

答案 3 :(得分:0)

您可以使用ng-bind-html指令完成此操作:

<div ng-controller="MyCtrl" id="tableForVxp" class="dataDisplay2">
  <span ng-bind-html="level"></span>
</div>