我想知道..在属性指令中使用ElementRef被认为是不好的做法吗?目前我正在基于Date变量(时间表)定位一些元素,并且将来希望能够拖放元素,并将新的日期和时间信息发送到数据库(基于位置)。我发现我可以使用指令来做到这一点。但后来我看了documentation for ElementRef说明:
小心使用
直接访问时,请使用此API作为最后的手段 需要DOM。使用Angular提供的模板和数据绑定 代替。或者,您可以查看提供API的Renderer 即使直接访问本机元素也可以安全使用 不支持。
依赖直接DOM访问会产生紧密耦合 您的应用程序和渲染层之间将形成它 不可能将两者分开并将您的应用程序部署到Web中 工人。
所以我的问题是你会考虑我的元素的运动吗?#34;最后的手段"?如果没有,您将如何根据这些变量替换元素的位置?
答案 0 :(得分:1)
不知何故,我认为他们试图最大限度地混淆这篇文档。
使用ElementRef
完全没问题
文档实际引用的是访问ElementRef.nativeElement
的方法或字段。
Angular竭尽全力抽象DOM并允许您避免直接DOM访问,而不是对浏览器DOM的强烈依赖。
这允许在服务器上运行Angular以进行服务器端呈现或在WebWorkers中将负载分散到多个CPU内核上。
如果您想使用SSR或Web Workers,请尽可能远离直接DOM访问。
如果您不打算使用SSR或Web Workers,可以直接进行DOM访问,特别是如果您正在使用无论如何都直接访问DOM的非Angular库。