【发布时间】:2016-09-05 02:02:18
【问题描述】:
我已经读过 Angular 中的 DOM 操作应该在指令的编译函数中完成,而不是在预链接/后链接/控制器中完成。 compile 函数无权访问作用域。
我的问题是我想做依赖于范围变量的 DOM 操作。例如,我有一个要传递给指令的列表。在指令中,我正在创建一个自定义选择,其中包含列表项。在这种情况下,操作 DOM 的正确位置在哪里?
请注意,我没有使用 ng-repeat - 当列表变大时,我发现它非常慢。
【问题讨论】:
-
你误解了你读到的任何东西。 DOM 操作应该在指令模板中完成,其次是在指令的链接函数中(它确实可以访问范围)。 (请注意,直接的 jQuery 样式的 DOM 编辑是个坏主意;理想情况下,链接函数应该只修改模型数据,而 DOM 会作为副作用发生变化。)对于大多数目的,您根本不需要触摸
$compile.
标签: angularjs angular-directive