javascript - 是否可以在 V-for 中附加多个函数?

标签 javascript vue.js vuejs2 vuejs3 v-for

我有一个元素数组,我需要将这些元素渲染到一个 div 中并为每个元素附加不同的点击功能。

<template>
  <div class="container">

    <div v-for="option in options" :key="option.id" @click="option.clickFunction">. 
      {{option}}
    </div>

  </div>
</template>

<script>
export default{
  data(){
    return{
      options: [
        {
          id: 1,
          text: "option 1",
          clickFunction: "function1",
        },
        {
          id: 2,
          text: "option 2",
          clickFunction: "function2",
        },
        {
          id: 3,
          text: "option 3",
          clickFunction: "function3",
        },
        {
          id: 4,
          text: "option 4",
          clickFunction: "function4",
        },
        {
          id: 5,
          text: "option 5",
          clickFunction: "function5",
        },
      ],
    }
  }
  methods:{
    //defining all click functions
  }
}
</script>

上面的方法我都试过了,还是不行,请问有什么办法吗?

最佳答案

这对您不起作用,因为每个对象中的每个 clickFunction 属性都是一个字符串。 @click 属性应该如何处理常规旧字符串?尝试

<template>
  <div class="container">

    <div v-for="option in options" :key="option.id" @click="option.clickFunction">
      <!-- I'm guessing you meant option.text here -->
      {{option.text}}
    </div>

  </div>
</template>

<script>
export default{
  data(){
    return{
      // pass functions around instead of strings!
      options: [
        {
          id: 1,
          text: "option 1",
          clickFunction: this.myUniqueClickHandler,
        },
        {
          id: 2,
          text: "option 2",
          clickFunction: this.myOtherUniqueClickHandler,
        },
        // etc.
      ],
    }
  }
  methods:{
    myUniqueClickHandler() {
      // ...
    },
    myOtherUniqueClickHandler() {
      // ...
    }
  }
}
</script>

关于javascript - 是否可以在 V-for 中附加多个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70321258/

相关文章:

javascript - 如何从输入类型=文本中获取值 "font-size:xxx"?

vue.js - "Default Apollo Queries"VS "AsyncData"(Nuxt.js)

vue.js - Vuejs - 克隆元素并附加到 DOM 的正确方法

javascript - Vue 在路由器 View 中相同组件之间切换将不会再次安装/创建

Laravel Passport 中间件保护路由 "Unauthenticated"问题

javascript - 如何在 WebView 中添加 JavaScript 函数并稍后在提交 reCAPTCHA 时从 HTML 中调用它

javascript - 如何在html5或javascript中发出RTSP请求?

testing - VueJS 自动化 - Test Cafe 与 Nightwatch - 优点/缺点

javascript - 是否可以使用 URL 在 JS 文件中导入文件

javascript - 在coffeescript中模拟链接点击