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

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

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

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

Q&A

解決済

1回答

3760閲覧

v-forで一つのHTML要素内に文字列を結合して出力したい

qwe001

総合スコア133

Vue.js

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

0グッド

0クリップ

投稿2020/04/27 08:07

編集2020/04/27 08:09

Vue.jsを使用しています。
aタグの中に、文字列を半角スペースで結合させて出力したいです。

入力(現状)

<h3>部署名</h3> <p><a><span v-for="department in item.departments">{{ department.name }}&nbsp;</span></a></p>

出力(現状)

<h3>部署名</h3> <p><a><span>営業部&nbsp;</span><span>経理部&nbsp;</span><span>人事部&nbsp;</span></a></p>

spanタグを挟まずに、aタグ内に文字列を出力したいです

入力(イメージ)

LaravelのBladeテンプレートで書いたらこんな感じで作れると思います(試してませんが)

<h3>部署名</h3> <p><a> @foreach($departments as $department) {{ $department->name . "&nbsp;" }} @endforeach </a></p>

これに近しいことを、Vue.jsで実現したいです

出力(理想)

<h3>部署名</h3> <p><a>営業部&nbsp;経理部&nbsp;人事部&nbsp;</a></p>

何か良い方法はありますか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記コードのようなデータが定義されていると仮定したサンプルです。ポイントは次の2点です。

  1. 文字列の連結はcomputedに定義するgetDepartmentsメソッドで行う。
  2. 連結した文字列に&nbsp;という文字実体参照を含むのでhtmlへの出力はv-htmlを使用する。

vue

1<template> 2 <div class="about"> 3 <h3>部署名</h3> 4 <p><a href="/" v-html="getDepartments"></a></p> 5 </div> 6</template> 7 8<script> 9export default { 10 data() { 11 return { 12 item: { 13 departments: [ 14 {id: 1, name: '営業部' }, 15 {id: 2, name: '経理部' }, 16 {id: 3, name: '人事部' } 17 ] 18 } 19 } 20 }, 21 computed: { 22 getDepartments() { 23 return this.item.departments.reduce((acc, dept) => acc + dept.name + "&nbsp;", "") 24 } 25 } 26} 27</script>

投稿2020/04/27 08:58

rubytomato

総合スコア1752

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問