2017-12-18 1 views
1

私は削除メソッドを持つTodoクラスを持っています。私は@clickハンドラとしてdeleteメソッドを使用したい:クリック処理でインスタンスメソッドを使用

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

は、残念ながら、これは私を与える:https://codepen.io/nickforddesign/pen/YYwgKx

Invalid handler for event "click": got undefined 
+0

あなたは 'class'コードを提供することはできますか?あなたのメソッドの代わりに 'Vue'が未定義になったようです – GONG

+0

メソッドが存在するのですか?あなたが作成したフックのconsole.log todosならどうなるでしょうか? – nickford

答えて

1

は、ここでコアコンセプトの作業を示して簡単なcodepen例です問題は、あなたの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`) 
     } 
     }] 
    } 
    } 
}) 
関連する問題