我是Angular的新手,我理解其中一个“规则”是控制器中不应存在DOM操作。我听说很多人开始使用Angular并不完全理解这一点并最终将JS代码直接编写到他们的应用程序中,我对此的理解是,如果你正在编写一个Angular应用程序,你应该完全忘记常规的JavaScript。
我发现在Angular应用程序中使用第三方插件或常规JS脚本是将其包装在一个对象中。我已经读过,通常可以通过将脚本包装在指令或服务中来完成。
所以我有几个问题:
在指令或服务作为包装器进行选择时,需要考虑哪些主要问题?
使用指令或服务作为包装器是否存在重大的性能和/或维护问题?
我怀疑如果您正在进行任何http请求,那么在这种情况下您会使用服务,这是我在将服务用作包装器对象时唯一知道的事情
答案 0 :(得分:2)
你应该使用指令。在他们的定义中,他们有一个接收函数的link属性。在DOM中呈现指令模板之后执行此函数。因此,在此函数中,您可以访问指令模板中的任何元素。
请记住:如果您要进行一些DOM操作,则只应在呈现您正在操作的DOM的指令的链接器函数中执行它。
中了解有关创建自定义指令的详情