🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

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

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

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

Q&A

解決済

2回答

1446閲覧

Nuxt.js computedの戻り値の変数名を動的に取得したい

ms5025

総合スコア292

Vue.js

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

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

JavaScript

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

0グッド

0クリップ

投稿2019/11/20 01:41

編集2019/11/20 02:16

前提・実現したいこと

以下のような算出プロパティがあったとします
別に
otheritem1−6まで項目があったとします。

html側からotheritem1−6に相対するtest項目を表示させたいです。
変数testを動的にとる場合どのようにしたらいいでしょうか?
html側でotheritem1−6までループしてtest1-test6までを同時に表示したいです

computed: { /* * 計算 */ test() { return { test1 : test1, test2 : test2, test3 : test3, test4 : test4, test5 : test5, test6 : test6, } },``` HTML側 <tr v-for="(v,k) in otheritem"> <strong>{{ test.test{k}}}</strong> </tr> ↑エラーとなる ### 該当のソースコード

試したこと

k=ループのキーとして
test${k}
のようにして見ましたが
ダメでした。
また配列にして
test[k] のように参照してもダメでした。

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

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

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

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

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

guest

回答2

0

ベストアンサー

以下の形式で参照できます。

vue

1<div v-for="(item, key) in test"> 2 {{ key }}:{{ item }} 3</div>

投稿2019/11/20 01:58

nt4c

総合スコア768

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

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

ms5025

2019/11/20 02:13

<div v-for="(item, key) in otheritem"> {test{ key }} </div> のようには取れないのでしょうか? otheritemと言う別の otheritem1 otheritem2 otheritem3 otheritem4 ・・・ をv-forでループさせて それに合致する test{k}を表示させたい otheritem1 の時 test1を表示させたいです
nt4c

2019/11/20 02:18

上記で言うならばキーを参照したければ「key」を参照中のバリューを見たければ「item」を表示してください。indexを見たいのであればv-for="(item, key, index) in test"として「index」を表示してください
ms5025

2019/11/20 02:29 編集

keyの参照の仕方はわかるんです computed で取得したtestと言う変数の test1 のこの[1]の部分を可変で作成してtest1-6の値をとりたいんです。 ベースのループはotheritemになります そのkeyは取得できます。 そして test + key で computedで算出した test1-6までの変数を動的に取得したいんです。 test${k} では参照できなくて・・・
nt4c

2019/11/20 02:35

数を使って参照したいのであれば以下のような記述方法で取得可能です。 <div v-for="number in 5"> {{ test[`test${number}`] }} </div>
ms5025

2019/11/20 02:45

ありがとうございます! できました! {{ test[`test${number}`] }} なんですね {{ `test[test${number}]` }} としていました!! 助かりました!
guest

0

computedはHTML側での処理を減らす(無くす)ものなので使い方が違うと思いますが

返り値をオブジェクトのv-forで取得すればできます

投稿2019/11/20 01:49

mouse_484

総合スコア759

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

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

ms5025

2019/11/20 01:53

動的に変数にアクセスするのではなく、 v-for でループして かつ testもv-forでLOOPして表示する、と言うことですか?
mouse_484

2019/11/20 01:56

>動的に変数にアクセスする というのが意味がわからないのですが <div v-for="value in test">{{ value }}</div> で取得できないですか?
ms5025

2019/11/20 02:11

<div v-for="key in otherItem"> {{test{key]}} </div> のようにしたいのです。 testの値ではなく otherItemと言う別の項目のキーと相対するtestを表示したい。 なので変数名のtest自体を動的に取れないのかなlあと わかりにくくてすいません
mouse_484

2019/11/20 02:13

変数名は(value,key) in testとしたときのkeyです
ms5025

2019/11/20 02:18

testをv-forで回して取得することはわかるんです 普通に取れるので そうではなく、別のotheritem1-6があったとして これをループする際、一緒に同じ添字のtestを表示させたいのです。 otheritem1 test1 otheritem2 test2 のような感じで。 ベースのループはotheritemです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問