如何使用AngularJS模板渲染html

use*_*147 67 javascript angularjs

这是我的模板:

<div class="span12">
  <ng:view></ng:view>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的视图模板:

<h1>{{stuff.title}}</h1>

{{stuff.content}}
Run Code Online (Sandbox Code Playgroud)

我得到了contenthtml,我想在视图中显示,但我得到的只是原始的HTML代码.我该如何呈现该HTML?

Jas*_*son 98

使用-

<span ng-bind-html="myContent"></span>
Run Code Online (Sandbox Code Playgroud)

你需要告诉棱角不要逃避它.

  • AngularJS 1.2中的API发生了变化.http://stackoverflow.com/questions/18340872/how-do-you-use-sce-trustashtmlstring-to-replicate-ng-bind-html-unsafe-in-angu (10认同)
  • 由于角度"地狱文档",amccausl已经保存了新的角度用户无数小时的调试,不推荐使用ng-bind-html-unsafe,请参阅上面评论中的链接以解决问题. (2认同)

Dan*_*iel 50

为此,我使用自定义过滤器.

在我的应用程序:

myApp.filter('rawHtml', ['$sce', function($sce){
  return function(val) {
    return $sce.trustAsHtml(val);
  };
}]);
Run Code Online (Sandbox Code Playgroud)

然后,在视图中:

<h1>{{ stuff.title}}</h1>

<div ng-bind-html="stuff.content | rawHtml"></div>
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用.仍然得到原始的HTML (3认同)