1

我有一个 AngularJS 应用程序与一些执行 DOM 操作的旧 javascript 相结合。混乱的部分——有时遗留的 javascript 会使用 AngularJS 指令插入 dom 元素。自然 AngularJS 不知道这一点,并且这些指令没有被编译并链接到范围。如何编译和链接动态插入的新元素上的指令?

请不要告诉我用 Angular 重写所有内容,或者用 Angular 包装遗留的东西,我无法触及。我的 angularjs 应用程序是一个在 3P 网站上运行以提供额外功能的插件。

我考虑过的选项:

  1. 只需拆除 angular 应用程序并每次重新引导它 - 这实际上很难干净地完成,因为没有干净的方法来拆除应用程序:如何销毁 angularjs 应用程序?
  2. 遍历 dom 寻找未编译的指令。我只有少数要查找的指令(作为属性)。Angular 会自动将 ng-scope 类放在附加了作用域的元素上,因此如果缺少它,我可以使用 $compile 服务手动编译指令并将其链接到作用域。

目前我正在研究第二种方法,但我一直认为必须有更聪明的方法。请问有人有更好的主意吗?

我应该提到,我的应用程序在任何 dom 操作后都会收到回调 - 但如果我不需要它会更好。

4

0 回答 0