Как удалить обработчики событий щелчка документа, добавленные с помощью ngx-bootstrap dropdownToggle? - PullRequest
0 голосов
/ 25 октября 2018

Я использую ngx-bootstrap v1.9.1 и работаю над Angular 2. Я обнаружил, что обнаружение изменений запускается для всего моего приложения при каждом нажатии в любом месте моего документа.(Только что сделал консольный вход в ngDoCheck() моего компонента приложения).При проверке прослушивателей событий в браузере я обнаружил, что к document добавлено несколько click прослушивателей.Когда количество визуализированных компонентов увеличивается, эти обработчики щелчков приводят к возникновению огромных обнаружений изменений, что делает приложение очень медленным.

Методом исключения я обнаружил, что это директива dropdownToggle, которая присоединяет обработчики щелчков документов,Обращаясь к документам для ngx-bootstrap, я обнаружил, что они предоставляют конфигурацию, при которой раскрывающийся список не закроется, если я щелкну где-нибудь еще в документе.

providers: [{provide: BsDropdownConfig, useValue: {autoClose: false}}]

Это прекрасно работаетпросто из-за того, что выпадающий список не закрывается, если я щелкаю где-то еще на документе, но прослушиватели событий, прикрепленные к документу, все еще существуют, поэтому моя проблема остается той же!Везде, где я нажимаю на кнопку, обнаруживается изменение экрана.

Есть ли способ удалить эти обработчики, сохранив использование dropdownToggle?Или я должен сам прибегнуть к пользовательским выпадающим спискам?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...