我正在开发一个以异步方式提取HTML并显示它的应用。但HTML中有一个Angular指令。问题是该指令未被编译。我怎么能强迫这种情况发生呢?
HTML:
<div>
Outer html
<angular-directive></angular-directive>
</div>
angularDirective的内容:
<div>Test Content</div>
但是这并没有显示angularDiretive的内容,只显示了标签。
答案 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年多了......