クリックしたら、プロパティが上書きされる処理の配列名を引数でメソッドに渡したい
HTML
1<ul> 2 <li v-for="(boss,index) in bosses" v-bind:key="boss.name"> 3 <span v-on:click="work(index,'bosses')">{{boss.state}}</span> 4 {{boss.name}} 5 </li> 6</ul>
Vue.js
Vue.js
1var app = new Vue({ 2 el: '#app', 3 data: { 4 bosses: [ 5 { 6 state: "出社", 7 name: '田中', 8 }, 9 10 { 11 state: "出社", 12 name: '山田', 13 }, 14 15 ], 16 } 17 methods: { 18 work: function (index,value) { 19 alert(value); 20 if (this.value[index].state === "出社") { 21 this.value[index].state = "在宅"; 22 } else if (this.value[index].state === "在宅") { 23 this.value[index].state = "休み"; 24 } else if (this.value[index].state === "休み") { 25 this.value[index].state = "出社"; 26 } 27 }, 28 })
試したこと
- alertにはbossesと表示されるが、stateは上書きされません。
- 引数を使わずにbossesと書けば、きちんと動きます。
質問
- なぜ、このプログラムは動かないのでしょうか?
※
長いソースコードを切り抜いたので、ほかに不具合があり可能性があります
回答1件
あなたの回答
tips
プレビュー