Vue: «TypeError: handler.apply не является функцией» - ($ emit inside jQuery callback listener) - PullRequest
0 голосов
/ 08 января 2020

Я инициализировал плагин jQuery для элемента внутри vue компонента. В функции инициализации у меня есть «$(document).ready(function()», что означает, что «this» не будет работать внутри. Поэтому я использую var that = this.

Однако есть также зарегистрированный слушатель, и внутри этого слушателя мне нужно выдать значение:

initialize() {

     var that = this;

    $(document).ready(function() {

       let editor = that.$refs.myplugin

      //initialize   
       var $editor  = $(editor ).myplugin({

            height: 300
       })

       //listener callback
       $editor.on('myplugin.change', (e) => {

           //results in error
           that.$emit('input', 'test message');

        }) 
    }) 
}

Значение передается, но каждый время возникает ошибка «Ошибка в v-on обработчике:« TypeError: handler.apply is not a function ». Если я закомментирую $ emit, ошибки не будет.

Так что that работает внутри обратного вызова (я могу вызвать тестовая функция), но не emit.

Так почему же отображается ошибка и как мне использовать $emit correclty в обратном вызове этого слушателя?

Обновление : Пытался изменить функцию стрелки на нормальную функцию, но ошибка все та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...