Pull to refresh

Comments 6

А Вы не пробовали отключать события в css?
li:focus { pointer-events: none; }
Интересная идея! Но как при этом по пункту кликнуть? :)

Кроме того, это попытка решить конкретную ситуацию, а не комплексный кейс. В работе у меня довольно часто встречаются такие случаи с выходом из обработчика события без каких-либо действий. Я взял данный пример, потому что с него обратил на это внимание и потому, что движение мыши выстреливает часто. Ещё гипотетический кейс сходу – событие скролла и подгрузка новых данных при приближении к краю.
Клики можно обрабатывать выше по дереву, но это все костыли, конечно, и логике в css не место)
Описанный в статье вариант намного и лучше и правильнее и чаще применим.

Можно ещё removeEventListener сделать для Dom элемента, и впилить свой вместо него


В этом случае ангуляр не будет реагировать на событие, а вы сможете его динамически убирать добавлять

Вклинивание во внутреннюю обработку событий Angular — затея авантюрная, так как внутренняя реализация может измениться в будущем.

На сколько я понимаю, EventManagerPlugin не является частью публичного API, и ориентироваться на него действительно может быть чревато различными казусами, даже в случае смены минорной версии Ангуляра. Плагины хоть и выглядят способом предназначенным для внедрения подобной логики, но сам EventManager входит в публичное API, а значит его подмена в нужном модуле уже не будет являться авантюрной затеей.


Спасибо за статью, было интересно почитать, и к слову не могу не попиариться: писал как-то о схожим решении своей проблемы, там есть показания профайлера и демонстрационное приложение, наглядно показывающие для чего подобные оптимизации в контексте Ангуляра нужны.


спойлер

Чтобы было не так:
image


А так:
image

Спасибо! Прочитал твою статью — я подумывал добавить модификатор `.silent` к своему плагину, чтобы запускать обработчик вне зоны, но пока у меня в библиотеке не было реальных кейсов, требующих такие обработчики, так что решил отложить до появления необходимости :) DnD пока не делал, в 7-ом ангуляре в CDK появились для этого инструменты. Интересно было бы посмотреть на их производительность в масштабах твоего случая.
Sign up to leave a comment.