首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Directive在Angular中渲染html

使用Directive在Angular中渲染html
EN

Stack Overflow用户
提问于 2013-09-12 11:49:31
回答 2查看 6K关注 0票数 2

我将所见即所得编辑器的输出html数据存储在我的数据库中。html还存储一些指令的html。其中之一是ui-bootstrap工具提示:

代码语言:javascript
复制
<span tooltip-placement="left" tooltip="On the Left!">Tooltip text here</span>

通过使用绑定,我可以让任何其他html元素工作:

代码语言:javascript
复制
<div ng-bind-html-unsafe="html.content"></div>

但是带有指令引用的html并不与实际的指令交互。

我怎样才能让指令起作用?

我必须编译html或类似的东西吗?

EN

回答 2

Stack Overflow用户

发布于 2013-09-12 13:33:01

是的,因为你试图呈现的标记包含指令,所以你需要编译它,这样它们才能被Angular处理。

您可以创建一个为您完成此任务的指令:

代码语言:javascript
复制
app.directive('htmlRender', function($compile) {
  return {
    restrict: 'E',
    scope: { html: '@' },
    link: function(scope, element) {
      scope.$watch('html', function(value) {
        if (!value) return;

        var markup = $compile(value)(scope);
        element.append(markup);
      });
    }
  };
});

Plunker here

票数 5
EN

Stack Overflow用户

发布于 2013-09-12 13:13:37

代码语言:javascript
复制
Do I have to compile the html or something like that?

是的,您需要编译的HTML作为角度将只考虑作为简单的html如下

代码语言:javascript
复制
<div ng-bind-html-unsafe="html.content"></div>

下面是$compile的文档

$complie documenation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18755019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档