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

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

詳細はこちら
Vue.js

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

JavaScript

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

Q&A

解決済

2回答

700閲覧

vue.js、v-forの使い方

Gonzo

総合スコア11

Vue.js

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

JavaScript

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

0グッド

0クリップ

投稿2021/03/01 02:02

編集2021/03/01 03:10

前提・実現したいこと

vue.jsの入門本を片手に試行錯誤しています。
v-forの使い方が良く分かりません。
patternsには配列のほか数値も直接入れることができるとのことで、変数もOKかなと思い試してみましたがダメでした。
そもそも使い方が間違っているような気もしますが…;
このような書き方はできないのでしょうか?

やりたいことは「patternsの値の分だけリストを繰り返す」です。

<ul> <li v-for="x in patterns" :key="x">{{x}}</li> </ul> <input type="number" v-model="patterns">
var app = new Vue({ el:"#app", data:{ patterns:3 } }

ロード時は希望通り下記の通り表示されます。
・1
・2
・3

が、inputboxで値を変更すると、patterns値の桁数回数しか繰り返されません。
1~9の場合は1回、10~99の場合は2回、100~999だと3回・・・etc.

patternsの分だけ繰り返すにはどのように記述すれば良いでしょうか。

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

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

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

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

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

m.ts10806

2021/03/01 02:10

コードはマークダウンのcode機能にてご提示ください
plasticgrammer

2021/03/01 02:22

parseIntで数値化を明示するとどうなりますか? v-for="x in parseInt(patterns)"
Gonzo

2021/03/01 05:00

>m.ts10806 指摘ありがとうございます。修正してみました。 >plasticgrammer parseIntを試してみたところ希望通りの動きとなりました。 なるほど、数値として扱ってくれるように明示すれば良いだけだったんですね。 ありがとうございます。
plasticgrammer

2021/03/01 05:22

うまくいったとのこと了解しました。 では同じ内容を回答にも転記しておきます。
guest

回答2

0

一応メモ。いずれもparseIntは不要。

1.王道(?)
Inputのv-modelに、数値入力を指定する修飾子.numberを記述。

<input type="number" v-model.number="patterns">

2.ほかのやり方
patternsから0を引く。

HTML

1<li v-for="x in (patterns-0)">{{x}}</li>

投稿2021/03/02 00:46

Gonzo

総合スコア11

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

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

0

ベストアンサー

v-for="x in parseInt(patterns)"
でどうでしょうか。

投稿2021/03/01 05:22

plasticgrammer

総合スコア629

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

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

Gonzo

2021/03/01 05:36

patternsの中にnを置いてpatterns.nで試してみたり試行錯誤してもダメだったのでとりあえずこの件はあきらめて次の項目に移ろうと思っていたので助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問