如何在Vue.js中的变量中传递方法名称

布伦特·阿库尔

我不确定是否可以,但是我想做的就是将变量中的方法名称传递给孙子。

在我的页面上有一个“顶栏”组件,其中包含“按钮”组件。

// Home.vue
<my-topbar :buttons="buttons"></my-topbar>

data() {
  return {
    buttons: [
      {
        type: "icon",
        icon: "delete",
        label: "delete",
        method: "deleteSelections",
      },
      {
        type: "icon",
        icon: "upload",
        label: "upload",
        method: "saveToDatabase",
      }
    ]
  };
},


// Topbar.vue
<my-button v-for="(button, index) in buttons" :key="index" :button="button"></my-button>

// Button.vue
<v-btn @click="button.method">
    <v-icon v-if="button.type !== 'text'">{{icons[button.icon]}}</v-icon>
    <span v-if="button.type !== 'icon'">{{$t(`buttons[${button.label}]`)}}</span>
</v-btn>

我的问题是@ click =“ button.method”部分。当我单击它时,它返回:“ TypeError:_vm.button.method不是函数”

我尝试了这两种语法,但没有得到任何结果,在这种情况下甚至都没有错误:

:on-click="${button.method}"

@click="${button.method}"

如果有人可以告诉我正确的做法,我将不胜感激。谢谢。

皮匠

CSB链接

原谅缺乏样式,我不知道为什么文本没有显示在按钮上。但是-这就是我所做的。

buttons像现在一样,数组传递到标题。Button.vue添加@click处理程序以调用代理方法callMethod(button.method)重要的部分是此代理方法:

 methods: {
    saveToDatabase() {
      console.log("Save to database!");
    },
    deleteSelections() {
      console.log("Delete seleciton!");
    },
    callMethod(method) {
      this[method]();
    }

callMethod其全部是this[method]()只要传入的方法存在于组件的方法中,它将对其进行调用。this在这种情况下,指的是组件。方括号将调用传入的值的评估值。这是对此的解释:https : //stackoverflow.com/a/45173791/7375929

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中动态传递方法名称

来自分类Dev

如何避免将变量命名为与 ruby 中的方法名称相同的名称?

来自分类Dev

vue.js中v-for元素中的动态插值计算方法名称

来自分类Dev

如何在Spring JPA中从方法名称中关闭查询创建?

来自分类Dev

如何在Spring JPA中从方法名称中关闭查询创建?

来自分类Dev

如何在WCF Web服务中从xml中禁止方法名称?

来自分类Dev

使用PostSharp时如何在原始方法中获取方法名称?

来自分类Dev

如何在Ruby中使用存储在数组中的方法名称来调用类方法?

来自分类Dev

如何在C#中的多个子方法中找到父方法名称?

来自分类Dev

如何像清单中那样在Scala中将方法名称X映射到方法名称Y

来自分类Dev

如何在unittest.TestResult中获取成功测试的方法名称列表?

来自分类Dev

如何在eclipse插件应用程序中获取完整的方法名称

来自分类Dev

如何获取在传递参数的lambda中使用的方法名称

来自分类Dev

如何在Vue JS中触发元素?

来自分类Dev

如何在 Vue.js 中循环?

来自分类Dev

如何从Application_BeginRequest中的WCF请求中获取方法名称?

来自分类Dev

如何从Application_BeginRequest中的WCF请求中获取方法名称?

来自分类Dev

如何在vue中定义全局方法?

来自分类Dev

如果当前模型中的方法名称相同,如何调用活动记录的关联方法

来自分类Dev

如何在Vue.js方法中从数组获取对象

来自分类Dev

Vue.js 2如何在方法中访问数据

来自分类Dev

如何在方法中添加类 - VUE.js

来自分类Dev

如何在XCode中更有效地复制Objective-C方法名称?

来自分类Dev

如何在Node.js中获取并传递变量

来自分类Dev

如何在Vue js中将模板变量传递给事件处理程序方法

来自分类Dev

如何在Python中的方法之间传递变量?

来自分类Dev

如何在流星查找方法中传递变量参数

来自分类Dev

如何从Windows Store应用程序中的操作获取方法名称

来自分类Dev

如何在javascript中传递链接名称?

Related 相关文章

  1. 1

    如何在Java中动态传递方法名称

  2. 2

    如何避免将变量命名为与 ruby 中的方法名称相同的名称?

  3. 3

    vue.js中v-for元素中的动态插值计算方法名称

  4. 4

    如何在Spring JPA中从方法名称中关闭查询创建?

  5. 5

    如何在Spring JPA中从方法名称中关闭查询创建?

  6. 6

    如何在WCF Web服务中从xml中禁止方法名称?

  7. 7

    使用PostSharp时如何在原始方法中获取方法名称?

  8. 8

    如何在Ruby中使用存储在数组中的方法名称来调用类方法?

  9. 9

    如何在C#中的多个子方法中找到父方法名称?

  10. 10

    如何像清单中那样在Scala中将方法名称X映射到方法名称Y

  11. 11

    如何在unittest.TestResult中获取成功测试的方法名称列表?

  12. 12

    如何在eclipse插件应用程序中获取完整的方法名称

  13. 13

    如何获取在传递参数的lambda中使用的方法名称

  14. 14

    如何在Vue JS中触发元素?

  15. 15

    如何在 Vue.js 中循环?

  16. 16

    如何从Application_BeginRequest中的WCF请求中获取方法名称?

  17. 17

    如何从Application_BeginRequest中的WCF请求中获取方法名称?

  18. 18

    如何在vue中定义全局方法?

  19. 19

    如果当前模型中的方法名称相同,如何调用活动记录的关联方法

  20. 20

    如何在Vue.js方法中从数组获取对象

  21. 21

    Vue.js 2如何在方法中访问数据

  22. 22

    如何在方法中添加类 - VUE.js

  23. 23

    如何在XCode中更有效地复制Objective-C方法名称?

  24. 24

    如何在Node.js中获取并传递变量

  25. 25

    如何在Vue js中将模板变量传递给事件处理程序方法

  26. 26

    如何在Python中的方法之间传递变量?

  27. 27

    如何在流星查找方法中传递变量参数

  28. 28

    如何从Windows Store应用程序中的操作获取方法名称

  29. 29

    如何在javascript中传递链接名称?

热门标签

归档