Vueへの配列の渡し方
目次
1.ブログ編集画面に、編集前記事の配列を表示させたい
2.map関数
Laravel + Vue.js で、Vue側に配列を渡す処理をアウトプットとして書いてみました。
1. ブログ編集画面に、編集前記事の配列を表示させたい
今回実装させたかった機能は、
ブログ編集画面で、編集前の記事のカテゴリを、編集画面のカテゴリ入力フォームに表示させたい!
ということです。
Laravel 単体だと、
<div class="form-group">
<label for="exampleInputEmail1">カテゴリ</label>
<input
type="text"
class="form-control"
name="tagCategory"
value="@foreach ($post->tags as $tag){{ $tag->tag_name }} @endforeach"
/>
</div>
こんな感じで value に foreach 文を書くことで実装できると思いますが、
今回はブログ編集画面に Vue を使っているためこのようにはできません。
2. map関数
そこで使うのが、map 関数!
まずは、v-bindを使いコントローラから Vue 側にカテゴリの配列を渡します。
<edit-component v-bind:tags="{{ ($post->tags) }}"> </edit-component>
this.tags
自体はオブジェクトの連想配列になっているため、
tag_name
だけを取り出した配列にしてあげないといけません。
ここで map 関数を使います!
<script>
name: "EditComponent",
props: {
tags: { type: Array },
},
data(tags) {
const category = this.tags.map((item) => "#" + item.tag_name );
const tag_category = category.join("");
return {
tagCategory: tag_category,
};
},
そして編集画面のカテゴリ入力画面を、v-model="tagCategory" で指定して
<div class="form-group">
<label for="exampleInputEmail1">カテゴリ</label>
<input
type="text"
class="form-control"
name="tagCategory"
v-model="tagCategory"
/>
</div>
実際の画面がこんな感じです!
編集前の記事で使われていたカテゴリがちゃんと表示されました!
これでわざわざカテゴリを書き直す必要もありません。
こんな便利なものがあったんだなぁ。
もっと勉強頑張りますっ!
Author And Source
この問題について(Vueへの配列の渡し方), 我々は、より多くの情報をここで見つけました https://qiita.com/watatatayu/items/b5325bac33a2df0bdbaf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .