es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quill-mention no inserta la mención seleccionada en el contenido de Quill.

Estoy utilizando QuillJs como campo de entrada y quill-mention no inserta la mencion seleccionada en el contenido de Quill.

  quillEditor = new Quill(editor, {
  formats: ['mention'],
  modules: {
    mention: {
      allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
      mentionDenotationChars: ['#'],
      source: function (searchTerm, renderList, mentionChar) {
        let values

        if (mentionChar === '#') {
          values = tags.map((i) => {
            return { value: i.name, id: i.name }
          })
        }

        if (searchTerm.length === 0) {
          renderList(values, searchTerm)
        } else {
          const matches = []
          for (let i = 0; i < values.length; i++)
            if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase())) matches.push(values[i])
          renderList(matches, searchTerm)
        }
      },
    },
  },
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el problema se encuentre dentro del renderizado de la mención seleccionada. Puedes intentar agregar una función mentionSelect dentro de la configuración del módulo de menciones para manejar cómo se inserta la mención seleccionada en el contenido de quill:

    mention: {
      allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
      mentionDenotationChars: ['#'],
      source: function(searchTerm, renderList, mentionChar) {
        let values
    
        if (mentionChar === '#') {
          values = tags.map((i) => {
            return { value: i.name, id: i.name }
          })
        }
    
        if (searchTerm.length === 0) {
          renderList(values, searchTerm)
        } else {
          const matches = []
          for (let i = 0; i < values.length; i++)
            if (~values[i].value.toLowerCase().indexOf(searchTerm.toLowerCase())) matches.push(values[i])
          renderList(matches, searchTerm)
        }
      },
      mentionSelect: function(item, insertItem) {
        insertItem(item.value);
      }
    },
    

    La función mentionSelect toma la mención seleccionada y una función para insertar el elemento seleccionado en el contenido de quill. En este caso, simplemente estamos insertando el valor del elemento de mención seleccionado. Puedes modificar la función según tus necesidades.

Comments are closed.