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

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

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

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

Q&A

1回答

9331閲覧

Vue.jsのv-forのスコープについて

komaiyuudai

総合スコア11

Vue.js

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

1グッド

1クリップ

投稿2017/04/07 01:42

環境

Vue.js v2.1.10
Laravel5.4(bladeテンプレート)

質問

v-forを使用し、下記のように記述するとitem.item_nameが出力されるのですが、

html

1<table> 2 <tr v-for="item of items"> 3 <td>@{{ item.item_name }}</td> 4 </tr> 5</table>

下記のようにtdタグを削除するとitemが存在しないとエラーが発生します。

html

1<table> 2 <tr v-for="item of items"> 3 @{{ item.item_name }} 4 </tr> 5</table>

エラー内容

[Vue warn]: Property or method "item" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.

初歩的な事かもしれませんが、これはVue.jsの仕様なのでしょうか?
よろしくお願いいたします。

unerix👍を押しています

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

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

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

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

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

guest

回答1

0

私もVue.jsを勉強中ですが、わかる範囲で記載させていただきます。
Laravel上で動かしていないので"@"を外し、最低限稼働するように,idと最小のスクリプトを付与し、稼働させて見るとエラーは出ませんでした。

▼html

<table id='test'> <tr v-for="item of items"> <td>{{ item.item_name }}</td> </tr> </table>

▼script

<script> var test_data = []; var test = new Vue({ el:'#test', data:{items:test_data} }) </script>

おそらくscript側のdataに"items"を設定されていないのではないでしょうか?
ここをコメントアウトすると同様のメッセージが出ましたので。

もちろん、上記にデータを与えてあげると、無事に取り込んでくれます。

test_data = [{item_name:'a'},{item_name:'b'},{item_name:'c'}];

投稿2017/04/21 20:34

kzmu

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問