Angular ViewChild的一个好用例是什么:ElementRef

Angular ViewChild的一个好用例是什么:ElementRef,angular,Angular,我知道您可以使用ViewChild…{read:ElementRef}访问DOM元素。但我的问题是你为什么要这么做?我能想到的每一个用例都可以通过更典型的角度机制更好地完成 编辑:澄清一下,当我可以通过绑定处理元素时,为什么我要直接从我的组件中访问DOM元素?使用ViewChild引用元素,您可以一致地获得其更改,因为装饰器检测到DOM更改,如果没有它,您每次都需要在检测更改的逻辑中调用querySelector或其他东西 假设您有一个*ngFor,其中包含一个异步变量作为其列表,并且必须引用循

我知道您可以使用ViewChild…{read:ElementRef}访问DOM元素。但我的问题是你为什么要这么做?我能想到的每一个用例都可以通过更典型的角度机制更好地完成


编辑:澄清一下,当我可以通过绑定处理元素时,为什么我要直接从我的组件中访问DOM元素?

使用ViewChild引用元素,您可以一致地获得其更改,因为装饰器检测到DOM更改,如果没有它,您每次都需要在检测更改的逻辑中调用querySelector或其他东西


假设您有一个*ngFor,其中包含一个异步变量作为其列表,并且必须引用循环中的一个元素。您需要等待它完成在屏幕上的渲染,然后使用查询选择器获取元素的数据,ViewChild可以帮助您这样做,因为它将检测您的DOM何时发生了更改。

谢谢,但我真正的问题是,我为什么要首先查询DOM元素。我想用一个元素做的大多数事情我已经可以用绑定做了。大多数时候我都是用来集中输入的。此外,还有一个特定的用例,我需要创建一个仪表板,每个卡都需要是动态的,我还需要能够通过拖放对这些仪表板卡进行排序,每个卡都是一个组件,我创建了一个包装器组件,它基本上只有一个div,在这个div中有一个ng模板,该模板用作引用,用于以友好方式插入组件。所以我有一个div,它的所有子对象都必须被排序和拖动,这个div必须被viewChild引用,因为我需要从父对象与子对象交互