如何将vuejs for循环索引值作为HTML按钮onclick javascript函数的参数传递

Pav*_*G R 2 javascript vue.js vue-component vuejs2

<div v-for="(grp,idx) in vm">
    <button onclick="addPlant(idx)">
    .......
    </button>
</div>
Run Code Online (Sandbox Code Playgroud)

addPlant()是一个JavaScript函数,而不是 VueJS 方法。

现在如何将idx值传递给 javascript 方法?

tha*_*ksd 5

onclick您无法像您尝试那样从普通的 javascript 处理程序引用 Vue 模板变量。

您应该将索引值传递给 Vue@click处理程序并从那里调用普通的 javascript 方法:

function addPlant(idx) {
  alert(idx)
}

new Vue({
  el: '#app',
  data() {
    return { 
      groups: ['a', 'b', 'c']
    }
  },
  methods: {
    onButtonClick(idx) {
      addPlant(idx)
    }
  }
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <div v-for="(grp, idx) in groups">
    <button @click="onButtonClick(idx)">
      {{ idx }}
    </button>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)