如何将html字符串打印为html

时间:2014-01-20 10:35:02

标签: javascript html angularjs text

如果仅举例:

var = "<a>Asd</a>";

<span>{{ var }}</span>

字符串打印得像文字而不是html,所以如何打印html?

3 个答案:

答案 0 :(得分:41)

您应该使用ng-bind-html directive

  

创建一个绑定,将innerHTML评估结果   以安全的方式表达当前元素。

<ANY ng-bind-html="{expression}">
   ...
</ANY>

答案 1 :(得分:9)

在使用 ng-bind-html 指令之前,您必须包含 $ sanitize 服务,否则会引发错误。

错误:$ sce:不安全 需要安全/可信赖的价值 试图在安全的环境中使用不安全的值。

Error: [$sce:unsafe] http://errors.angularjs.org/1.4.5/$sce/unsafe
    at Error (native)

正确的方式:

<script src="angular.js"></script>
<script src="angular-sanitize.js"></script>
var myApp = angular.module('app', ['ngSanitize']);
myApp.controller('MyController', ['$scope', function($scope) {
  $scope.myHTML = '<a href="#">Hello, World!</a>';
}]);
<div ng-controller="MyController">
 <p ng-bind-html="myHTML"></p>
</div>

https://docs.angularjs.org/api/ngSanitize

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

答案 2 :(得分:5)

您也可以尝试这样的事情:


    app.filter('to_trusted', ['$sce', function($sce) {
      return function(text) {
        return $sce.trustAsHtml(text);
      };
    }]);

然后,在视图中:


    ng-bind-html=" myHTML | to_trusted"