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

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

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

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

733閲覧

データベースのデータの表示・検索・追加・削除

hoto567

総合スコア0

Vue.js

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/05/03 08:49

以下のように、.vueファイルを作りました。
calendarsというデータベースを読み込み、calendarsFilteredに入れ、そこから検索ワードに応じてデータを表示させるつもりですが、<tr v-for ="calendar in calendarsFiltered" :key="calendar.calendar">としたらcalendarが定義されていませんと表示されます。
どのような問題点がありますでしょうか。

<template> <div> <p v-if="message">{{ message }}</p>
<div class="container pt-5 my-5 z-depth-1"> <input class="form-control mr-sm-2" type="text" placeholder="Search" v-model="search_term" aria-label="Search" /> <button class="btn btn-outline-success my-2 my-sm-0" v-on:click.prevent="getCalendars()">Search</button> <table> <tr> <th></th> <th>年月日</th> <th>年</th> <th>月</th> <th>日</th> <th>曜日</th> </tr> <tr v-for ="calendar in calendarsFiltered" :key="calendar.calendar"> <td><input type="checkbox" name="calendar" v-bind:value="calendar.calendar"></td> <td>{{calendar.calendar}}</td> <td>{{calendar.year}}</td> <td>{{calendar.month}}</td> <td>{{calendar.day}}</td> <td>{{calendar.week}}</td> <router-link :to="{name: 'calendar-edit', params: { calendar: calendar.calendar }}">編集</router-link> <button class="btn btn-danger" @click="deleteBook(calendar)">削除</button> </tr> </table> </div> </div>
</template> <script src="http://cdnjs.cloudflare.com/ajax/libs/vue/0.11.4/vue.min.js"></script> <script> export default { data() { return { calendars: [], isLoading: false, message: "", keyword: "", selection:"" }; }, created: function() { this.getCalendars(); this.findby(); }, computed:{ calendarsFiltered: function(){ return this.findBy(this.calendars,this.keyword,this.selection) } }, methods: { findBy: function(list,value,column){ return list.filter(function(item){ return(calendars[column]==value||value==='') }) }, getCalendars() { axios .get("api/calendar") .then(response => { this.calendars = response.data.calendars; console.log(this.calendars); }) .catch(err => { this.message = err; }); }, deleteBook(calendar) { axios .delete("/api/calendar/" + id) .then(response => { this.getCalendars(); console.log("デリート後"); this.message = ""; }) .catch(error => { this.message = error; }); } }, } </script>

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

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

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

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

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

guest

回答1

0

findBy メソッドの中に書いてあるcalendarsがの事ですね。
calendarsじゃなくてitemじゃないですか?

投稿2020/05/03 12:22

mikkame

総合スコア5036

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問