Я работаю над новым угловым приложением, и мне нужен сортируемый компонент. Сначала я попытался найти что-то уже готовое, но нашел только тяжелые решения, такие как:
- dragula (https://github.com/valor-software/ng2-dragula)
- поинтереснее ng2-dnd (https://github.com/akserg/ng2-dnd)
Конечно, я мог бы делать то, что мне нужно, но мне пришлось бы встраивать тысячи строк кода, а иногда и огромные зависимости, например, jQuery.
Моя потребность была простой, просто иметь возможность перетаскивать плитки, чтобы изменить их порядок. И теперь есть HTML API перетаскивания, доступный во всех современных браузерах (http://caniuse.com/#feat=dragndrop)
Поэтому я решил создать свою собственную директиву для сортировки, используя только HTML5 API. Использование этого API дает множество преимуществ
- Несколько строк кода
- Перетащите дескриптор призрачных изображений браузером
- Ручка автоматической прокрутки в браузере
- Отменить перетаскивание с помощью дескриптора клавиши escape в браузере
Я не делал компонент npm, просто простой плункер https://embed.plnkr.co/sdeK21bBags5RlFOtLte/, если вы хотите посмотреть