我知道您可以使用ViewChild(...,{read:ElementRef})访问DOM元素。但是我的问题是,为什么您会这样做?我能想到的每个用例都可以通过更典型的Angular机制更好地完成。
编辑:为澄清起见,当我可以通过绑定处理的元素可以做的一切时,为什么我要直接从组件内部访问DOM元素?
答案 0 :(得分:0)
使用ViewChild引用一个Element,您可以一致地获取其更改,因为装饰器检测到DOM更改,没有装饰器,则您每次需要在检测更改的逻辑内调用querySelector或其他任何东西。
假设您有一个*ngFor
带有一个异步变量作为其列表,并且您必须在循环内引用一个元素。您需要等待它完成以在屏幕上呈现,然后使用查询选择器来获取元素的数据,ViewChild可以帮助您完成此操作,因为它将检测到DOM何时更改。