vue 怎么从v-for 调用函数给button 的@click事件

click事件不能动态调用函数, 如下代码, 报错为:
TypeError: _vm.func is not a function
怎么做才可以实现从v-for中动态调用函数给click事件中调用?

         <template slot-scope="scope">
            <el-button v-for="(item,key) in actionbutton" :key="key" :type="item.type" 
              :size="item.size"
              @click="func(item.value)">
             {{ item.label }}
            </el-button>
         </template>
          actionbutton: [
            {label: '查看详情', type: 'text', value: 'showDetails', size: 'mini'},
            {label: '编辑', type: 'primary', value: 'showEditDialog(scope.$index,scope.row)', size: 'mini'},
            {label: '删除', type:'danger', value:'Delfunction(scope.$index,scope.row)', size: 'mini'},
          ],
阅读 7.1k
5 个回答

问题解决,
将actionbutton中的value改成method,既可。

method: (index, row) => {
     this.showEditDialog(index,row)
}

不知道你在js 中,写下面这段代码了吗? 如果没有是要报错的。

methods: {
  func(val) {
    // 你的代码
  },
}

你的value只是一个字符串。怎么可能会执行呢?

你看看你的组件是不是函数式组件
<template functional>
是的话去除,修改为普通组件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题