我有一类在用户请求被重置的元素 - 它被销毁(唉!)并从头开始重新创建。在那一刻,附加到该类的指令也被破坏了。问题是我们如何从外界强制角度(即该元素所属的控制器)重新编译范围并重新附加指令。
所以,我有一个关于元素所在范围的参考:
angular.element(myDom).scope()...
我如何踢角度重新编译它并附上指令?
angular.element(myDom).scope().$digest();
也.$apply
对我不起作用。
答案 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
的指令。