控制器内部:
$scope.content = $sce.trustAsHtml('<some-directive></some-directive>');
模板:
<!-- Works perfectly -->
<some-directive></some-directive>
<!-- HTML loaded correctly, but the directive inside won't execute -->
<div class="article__main" ng-bind-html="content"></div>
这里到底发生了什么?我如何告诉angular检查DOM是否会通过ng-bind-html添加新指令? BTW,我现在正在测试,指令只是登录到控制台,没有别的。
我在网站的另一个版本(而不是ng-bind-html)上使用了ng-include +一个文件,并且有效。
感谢提前:)
答案 0 :(得分:0)
您需要使用$ compile服务。
var compiledTemplate = $compile(content)(scope);
您还必须定义父范围。Here is the Doku to $compile
我从未在ng-bind-html
上使用过它,但是使用element.append()
在DOM上设置它可以正常工作