ngTagsInput - Как заблокировать удаление тегов через «Backspace»

В библиотеке ngTagsInput нет возможности отключить удаление тегов с помощью клавиши Backspace.

Добавления обычного события нажатия клавиши будет недостаточно, потому что вам нужно перехватить существующее событие, а не добавлять новое, поэтому любая попытка event.preventDefault() не сработает.

Есть идеи как его отключить?


person David    schedule 09.04.2020    source источник


Ответы (1)


Решение, которое я придумал, состоит в том, чтобы закоротить функцию on-tag-removing следующим образом:

        # Weird hack to prevent backspace deleting of tags
        # "selected" is the red treatment you get (early warning)
        # to indicate that the next backspace will delete the tag.
        # TODO: It'd be nice to have this NOT throw:
        # 'Possibly unhandled rejection: undefined'
        # But...could easily live with this in the console.
        if document.querySelector('.tag-item.selected')
          return false

ПРИМЕЧАНИЕ Сделайте себе одолжение и проверьте, соответствует ли ваша версия ngTagsInput текущей версии онлайн-документации, поскольку функция on-tag-removing была изменена, чтобы обрабатывать асинхронность/промисы по-другому. Этот пример работает с использованием текущей новейшей версии.

ПРИМЕЧАНИЕ. Если вы хотите, чтобы другие экземпляры ngTagsInput разрешали удаление, вам может потребоваться более точно определить область действия querySelector!

person David    schedule 09.04.2020