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

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

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

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

JavaScript

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

Q&A

解決済

3回答

1800閲覧

Vueのレンダリングで、HTMLを出力したい

sigisyun

総合スコア11

Vue.js

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

JavaScript

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

0グッド

0クリップ

投稿2020/03/26 13:43

HTMLを出力するとき、v-htmlディレクティブを利用しています。
https://jp.vuejs.org/v2/guide/syntax.html
問題は、ループ処理の結果のレンダリングで、「"(ダブルクォート)」で囲まれたHTMLが出力されることです。
補足しますと、1回目のループでは正しくHTMLが出力されています。しかし、2回目以降では""で囲まれてしまっています。""で囲まれない状態で出力したいのですが、問題の所在が見つからないので質問いたします。何卒よろしくお願いします。

<section class="row postCard" v-for="post in getItems"> <div class="col-3 col-md-4 posts-img-wrapper p-0"> <img class="posts-thumbnail" :src="post.thumbnail_path"> </div> <div class="col-9 col-md-7 offset-md-1 p-2"> <router-link :to="{name:'postdetail', params:{postId:post.id}}"> <h4 class="postTitle" v-html="post.title"></h4> </router-link> ↓該当箇所 <div class="d-md-block postContent" v-html="post.content"></div> <small class="put-right d-block">{{post.created_at}}</small> </div> </section>

getItemには算出プロパティで計算された結果のオブジェクトが入っています。

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

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

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

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

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

guest

回答3

0

今回の問題
v-htmlによって生のHTMLを出力できない。
1回目は正しく表示されるが、2回目以降からは""で囲まれる状況でした。

解決策
値を出力する前に挟んでいる処理をすべての要素にかけた
解決策と言うとおこがましいレベルの初歩的ミスです・・・

ソースは示しておらず、ご解答者に負担をおかけしている状況ですが、出力前にそれぞれの要素にデコード処理をかけております。
そのデコード処理を全ての要素に適用できていなかったことが原因でした。具体的にはループ回数のミスです。。

投稿2020/03/27 07:00

sigisyun

総合スコア11

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

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

0

ベストアンサー

JS側の処理もみないと何とも言えないですね...
ダブルクォーテーションどこかに混入していませんか?

投稿2020/03/27 05:54

minrara

総合スコア55

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

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

sigisyun

2020/03/27 06:14

ですよね。申し訳ありません。 ダブルクォーテーションについて HTMLコード上にも、オブジェクトのそれぞれの要素についても混入していません!これだけ多くの方に見てもらえて、一般的な問題点がなさそうですと、おそらく私の初歩ミスかと思います。 分析にご協力いただき本当に助かりました。ありがとうございます。
sigisyun

2020/03/27 06:19

もしかすると、原因が特定できたかもしれません。。試してみます。
minrara

2020/03/27 06:38

考えられることとしては、一回目はソースから直接出力されていて、二回目はブラウザ依存になっているからかもしれませんね。。 お役に立てず申し訳ありません。
sigisyun

2020/03/27 06:55

1回目が意図通り出力している件、謎でした。原因はループ回数のミスでした。。
guest

0

せめて変数の内容とループのロジックくらいは書かないとダメでは?
ループ見落としました

投稿2020/03/26 14:02

編集2020/03/26 14:07
hot3

総合スコア37

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

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

sigisyun

2020/03/26 14:07

ご回答ありがとうございます! なんのこっちゃわからないですよね.. 申し訳ありません。 Teratailに残ってご迷惑おかけしそうであれば質問ごと削除します。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問