質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

885閲覧

【Vue】配列[ ]の中身に、選んだ選択肢のidを動的に格納したい。

nomu_lui

総合スコア11

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/02/20 03:49

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/22 04:11

this.questionnaire.questionnaire_choices.[0]のような表現は this.questionnaire.questionnaire_choices[0]の間違いではありませんか? またquestionnaire-item要素を使っているテンプレートで、どういうデータをbindしていますか? お手数ですが、上記をご検討の上、質問文を修正してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問