Vue.jsを勉強し始めた者です。
v-forで配列を展開し、そのうちの一つをクリックすると(v-on:clickを使って)その説明文(今回の内容だとtext)が現れるようにしたいです。
その際のメソッドの書き方がわかりません。
js
1data: { 2 detail: " " 3 }
として用意し、
のitem.textをmethodsを使って、detailに代入し表示させようとしたのですがうまくいきませんでした。
どのようにすればthis.detailに任意のitem.textを代入またはitem.textを表示させることができるのでしょうか?
以下ソースコードです
js
1 var items = [ 2 { 3 name:'鉛筆', 4 text: '使いかけの古い鉛筆です。' 5 }, 6 { 7 name:'ノート', 8 text: '方眼罫でグラフが描きやすい!' 9 }, 10 { 11 name:'消しゴム', 12 text: '2020年グッドデザイン賞受賞' 13 } 14] 15 16var vm = new Vue({ 17 el: '#app', 18 data: { 19 items: items, 20 detail: '' 21 }, 22 methods: { 23 showDetail: function(){ 24 this.detail = 25 } 26 }
html
1 <div id="app"> 2 <ul> 3 <p>詳細を知りたい商品をクリックしてね!</p> 4 <li v-for="item in items" v-bind:key='item.name' > 5 <p v-on:click="showDetail">{{ item.name }}</p> 6 </li> 7 </ul> 8 <hr> 9 {{ detail }} 10 <hr> 11 </div>
ご回答お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/27 15:15
2020/04/27 15:19