как вызвать функцию внутри шаблона vue -tables2 - PullRequest
0 голосов
/ 14 января 2020

Я использую vue -tables2 в своем приложении. С помощью свойства 'template', доступного в опциях vue -table2, я могу изменить формат данных.

Пример код приведен ниже

data: {
    columns: ['erase'],
    options: {
        ...
        templates: {
            erase: function (h, row, index) {
                return this.test();
            }
        }
        ...
    },
    methods: {
        test() {
           return 'test';
        }
    } 
}

Код работает нормально, но когда я пытаюсь вызвать функцию внутри шаблона, он показывает ошибку ниже

TypeError: this.test is not a function

Как я могу вызвать функцию внутри vue -table2 свойство шаблона?

1 Ответ

0 голосов
/ 14 января 2020

this см. Текущую область действия. Вы используете внутри erase функцию, чтобы this ссылался на функцию стирания, а не vue instance.

Вы можете сделать это, установив глобальную переменную window, но я не совсем рекомендую это.

Пример

установить vue экземпляр в установленной области действия

mounted: function() {
  window.vm = this // assign vue instance to global window 
}

Затем использовать в области стирания, как показано ниже

erase: function (h, row, index) {
   return window.vm.test();
}
...