【问题标题】:event on button not working in vue-datatable按钮上的事件在 vue-datatable 中不起作用
【发布时间】:2021-05-15 04:17:31
【问题描述】:

我正在使用vue datatable,除了在单击按钮时不调用 callmethod() 之外,其他功能都可以正常工作。当我单击按钮时,不会触发任何事件。请有任何建议。

export default{
  
        data(){
          return{
            columns: [
                        {label: 'name', field: 'name'},
                        {label: 'Link', representedAs: row => ` <button @click="callmethod(${row.id})"> </button>`, interpolate: true}, 
                        
                       
                    ],
                rows: [],
                page: 1,
                per_page: 10,
                filter:  '',
           }
        },
        methods:{
          callmethod()
          {
            console.log('function called');
          },

【问题讨论】:

    标签: javascript vue.js vuejs2


    【解决方案1】:

    编辑:看起来您实际上正在使用vuejs-datatable。尽管如此,那里只存在原始数据,没有像回调那样的东西,所以在那里应该不可能做到这一点。尝试以某种方式直接在您的模板中执行此操作,因为官方文档中没有任何内容在谈论这个。

    或者也许看看另一个允许你这样做的库。有很多,你想要做的事情可能会更容易使用另一个包。您当前使用的那个 (vuejs-datatable) 只有 147 颗星,所以不是最受欢迎的。我建议在这里查看所有可用的解决方案:https://github.com/vuejs/awesome-vue#table

    您可以像这样看到附加的侦听器,从您的 vue devtools 中选择组件,然后在控制台中检查它的侦听器。


    您是在谈论 Vuetify 的 v-data-table 还是另一个?因为周围有很多..

    另外,从官方#data 文档中,我们可以看到它说

    经验法则是数据应该只是数据 - 不建议观察具有自己状态行为的对象。

    到目前为止,您不应将任何类型的 @click 事件处理到 data 中。您确定您的图书馆打算以这种方式工作吗?

    【讨论】:

    • 是的,它与我使用的相同链接npmjs.com/package/vuejs-datatable,我看到多个链接链接stackoverflow.com/questions/47202998/…,其中无法在动态创建的元素上调用事件
    • 哇,看看它从一开始就看起来多么老套,我宁愿避免这个。
    • 是的,它很复杂,因为它已经在我的项目中实现了,有没有办法在这里调用点击事件
    • 哦,但是 nvm,它甚至没有回答这个特定包的问题......所以,我想你可以尝试做一些 hacky 看看它是否能以某种方式工作。我已经编辑了关于如何检查某事是否有听众的答案。您可以从链接的 hacky 解决方案开始,看看它是否适用于基本按钮,然后尝试将其插入您使用的包中。尽管如此,这在很大程度上取决于他们的representedAsinterpolate 密钥如何工作。你可以检查源代码,也许找到一种方法。如果它甚至是可行的。如果可行,我建议使用更 clean 的东西,尤其是长期
    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多