Перейти к основному содержимому

insert-token

Описание

Срабатывает после того, как пользователь выбирает элемент из списка подсказок, и RichText вставляет его как токен

Событие insert-token срабатывает после того, как пользователь выбирает элемент из выпадающего списка триггера (упоминания, теги или любой пользовательский триггер, настроенный через свойство triggers).

Использование

"insert-token": ({
data: {
id?: string | number,
label?: string,
url?: string,
// ...любые пользовательские поля из источника данных триггера
},
trigger: string,
showTrigger?: boolean,
action?: (item) => void
}) => boolean | void;

Параметры

Калбэк события insert-token получает объект со следующими полями:

  • data — выбранный элемент подсказки. Содержит поля id, label и url элемента, а также любые пользовательские поля, добавленные в источник data триггера
  • trigger — символ триггера, открывший выпадающий список (например, "@" или "#")
  • showTrigger — если false, RichText вставляет только label; в противном случае виджет также отображает символ триггера (по умолчанию)
  • action — пользовательское действие, определённое для соответствующего триггера. Если задано, этот параметр имеет приоритет над вставкой токена: RichText удаляет введённый текст (символ триггера и запрос) и вызывает action(data) вместо вставки токена. Параметр showTrigger в этом случае не имеет эффекта
Информация

Для обработки внутренних событий используйте методы Event Bus.

Пример

// инициализация RichText
const editor = new richtext.Richtext("#root", {
// свойства конфигурации
});
// подписка на событие "insert-token"
editor.api.on("insert-token", ({ data, trigger, showTrigger }) => {
console.log(`Inserted ${trigger}${data.label} (id: ${data.id})`);
});

История изменений: Событие добавлено в v2.1

Связанный пример: RichText. Упоминания, теги и асинхронный поиск

Связанные статьи: Упоминания и теги