编译以HTML格式接收的Angular模板

时间:2015-11-30 10:53:53

标签: angularjs

我正在开发一个以异步方式提取HTML并显示它的应用。但HTML中有一个Angular指令。问题是该指令未被编译。我怎么能强迫这种情况发生呢?

HTML:

<div>
    Outer html
    <angular-directive></angular-directive>
</div>

angularDirective的内容:

    <div>Test Content</div>

但是这并没有显示angularDiretive的内容,只显示了标签。

2 个答案:

答案 0 :(得分:0)

$compile服务注入您的指令。并将html元素作为参数传递给$compile。它将编译html,它将在视图中可见。

答案 1 :(得分:0)

看一下这个例子http://www.benlesh.com/2013/08/angular-compile-how-it-works-how-to-use.html

  

我什么时候应该使用$ compile?

     

如实?几乎从不。您应该编译一些HTML并将其作为视图处理,这将是非常罕见的。通常,您可以使用已存在的指令来执行您认为需要使用$ compile执行的任何操作。但我想有一些边缘情况你可能想要使用它。比如创建一个完全自定义的转发器或类似的东西。

但如果你真的需要它,那么就这样做

var html = '<h1>my custom template loaded from whatever location</h1>'
// insert html string into element
element.html(html);
// compile
$compile(element.contents())(scope);

我只有$ compile服务只有一次,我已经在Angular工作了2年多了......