gpt4 book ai didi

AngularJS 服务中的 DOM 操作

转载 作者:行者123 更新时间:2023-12-03 10:00:23 27 4
gpt4 key购买 nike

众所周知,在使用 AngularJS 时,您必须在指令中操作 DOM 元素。

但是,在某些用例中,在服务内部操作 DOM 似乎是可以接受的。
Misko Hevery 正在谈论这个 here .您还可以在 Bootstrap UI Dialog 中找到示例。 .

Misko 的解释相当含糊,所以我想知道您如何确定何时需要将 DOM 放入服务而不是指令中。

最佳答案

一个指令,按照它的定义方式,总是附加到一个 DOM 节点上。因此,当您定义指令时,它会“扩展”或替换它所附加到的 DOM 节点。

在某些情况下(如对话框),您将无法将 DOM 节点附加到任何特定的父节点。在这些情况下,使用服务是有意义的,并且 Controller 仍然可以远离 DOM 位,因为 DOM 操作将被封装在服务中。

弹出窗口可能是我们可能使用服务的另一种情况,但与对话框不同的是,弹出窗口是附加到 DOM 节点的。所以,即使那是一个略微灰色的区域。

因此,一个基本而简单的测试是,“可以将这段 DOM 操作代码附加到 DOM 节点上吗?”如果是,则指令。如果没有,则服务。

对话框和自定义确认框是您使用服务的典型示例。

关于AngularJS 服务中的 DOM 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17925547/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com