在单击处理程序中使用实例方法

时间:2017-12-18 20:49:35

标签: javascript vue.js

我有一个有删除方法的Todo类。我想将delete方法用作@click处理程序:

Future

不幸的是,这给了我:

<div v-for="todo in todos">
    <v-btn @click="todo.delete">Delete</v-btn>
</div>

1 个答案:

答案 0 :(得分:1)

这是一个简单的codepen示例,显示了核心概念的工作原理:https://codepen.io/nickforddesign/pen/YYwgKx

问题是你的todos数组中的项目没有这个方法。

<div class="app">
  <ul>
    <li v-for="todo in todos">
      {{ todo }}
      <button @click="todo.delete">Delete</button>
    </li>
  </ul>
</div>

和js

new Vue({
  el: '.app',
  data() {
    return {
      todos: [{
        name: '1',
        delete() {
          alert(`delete`)
        }
      },{
        name: '2',
        delete() {
          alert(`delete`)
        }
      }]
    }
  }
})