如何强制$ scope重新编译其内容并重新链接指令

时间:2015-05-18 12:03:23

标签: angularjs angularjs-directive

我有一类在用户请求被重置的元素 - 它被销毁(唉!)并从头开始重新创建。在那一刻,附加到该类的指令也被破坏了。问题是我们如何从外界强制角度(即该元素所属的控制器)重新编译范围并重新附加指令。

所以,我有一个关于元素所在范围的参考: angular.element(myDom).scope()... 我如何踢角度重新编译它并附上指令?

angular.element(myDom).scope().$digest();.$apply 对我不起作用。

1 个答案:

答案 0 :(得分:2)

要从应用程序外部重新编译指令,您需要$compile$injector。以下是angular.injector documentation的代码段,适用于您的代码:

angular.element(document).injector().invoke(function($compile) {
    var scope = angular.element(myDom).scope();
    $compile(myDom)(scope);
});

代码找到文档的注入器并调用给定的函数,使用注入来获取$ compile。然后使用$ compile来使用其范围重新编译myDom的指令。