前提・実現したいこと
Vue.jsのおいて、配列[ ]
の中身に、選んだ選択肢のid
を動的に格納したいです。
Vue-pollというアンケート機能を実装できるライブラリを使用しており、
選択肢をクリックしたら、その選んだ選択肢のid
をサーバー側(Rails)に送りたいのですが、
配列[ ]
の中に選んだ選択肢のid
を動的に格納する方法が分からないので、アドバイスを頂けますと幸いです。
該当のソースコード
Vue
1<template> 2 <div class="section"> 3 <vue-poll v-bind="options" @addvote="addVote()"></vue-poll> 4 </div> 5</template> 6 7<script> 8export default { 9 name: "QuestionnaireItem", 10 props: { 11 questionnaire: Object, 12 }, 13 data() { 14 return { 15 options: { 16 question: this.questionnaire.text, 17 answers: [ 18 { value: this.questionnaire.questionnaire_choices.[0].id, text: this.questionnaire.questionnaire_choices.[0].choice, votes: 53 }, 19 { value: this.questionnaire.questionnaire_choices.[1].id, text: this.questionnaire.questionnaire_choices.[1].choice, votes: 35 }, 20 { value: this.questionnaire.questionnaire_choices.[2].id, text: this.questionnaire.questionnaire_choices.[2].choice, votes: 30 }, 21 ], 22 }, 23 } 24 }, 25 methods: { 26 addVote(obj){ 27 this.$axios.post("/v1/answers", { 28 user_id: this.authUser.id, 29 questionnaire_choice_id: this.options.answers.[0].value 30 }) 31 .then(res => { 32 console.log(res) 33 }) 34 } 35 } 36} 37</script>
サーバー側から引っ張ってきたquestionnaire: Object
を、表示させています。
このうち、ある選択肢をクリックしたらaddVoteメソッド
が発火するのですが、
questionnaire_choice_id: this.options.answers.[0].value
の[0]
の部分を、選んだ選択肢が入るようにしたいです。
試したこと
[this]
や[obj]
等試してみましたが、undefindedになりました。
お手数ですがアドバイスをいただけないでしょうか。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Ruby 2.7.2
Rails 6.0.3.4
Vue 2.6.12
あなたの回答
tips
プレビュー