关于这个话题how to make an event listener passive in Angular
的互联网空虚令人惊叹。
我有一个下拉菜单,滚动菜单时会在Chrome中引发错误:
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive...
。
我对Google抛出此错误和问题本身的动机很清楚,我知道解决方案。我需要在Angular代码中进行类似的工作:document.addEventListener('wheel', (e) => { e.preventDefault() }, { passive: false });
但似乎解决方案比我想象的要难实现。 Angular没有将事件监听器设置为{passive: false}
的方法,并且我上面粘贴的原始JS根本无法工作。
有人遇到类似的问题/解决方案吗? 也许有解决方法? 任何相关信息都可能很有价值,谢谢。
答案 0 :(得分:-1)
根据https://angular.io/guide/user-input中的规定:
(window as any)['__zone_symbol__PASSIVE_EVENTS'] = ['scroll'];
可以添加到polyfills中,这将使滚动事件的事件侦听器变为被动