2017-05-18 23 views
4

jsFiddleをセットアップして問題を紹介しました。レンダリングされたvueのhtmlプレースホルダ属性をエスケープする方法

<div id="app"> 
    <strong>{{title}}</strong><br> 
    <input type="text" :placeholder="icon" /> 
</div> 
new Vue({ 
    el: '#app', 
    data: { 
    title: 'Vue Rendered Info', 
    icon: '&#xf002;' 
    } 
}); 

これは私が何をしようとしているのほんの一例(ワーキングサンプルのためjsFiddleを確認してください)です。実際のプロジェクトでは、私は.vueコンポーネントを持っています。私のアイコンがデータにあるかどうかにかかわらず、私は同じ問題を抱えています。 stackoverflowのために、私はjsFiddleで問題の "実用的な"例を作りました。

入力のプレースホルダテキストの中にフォントアウェソムアイコンを配置しようとしています。

この問題を解決する方法についての洞察は素晴らしいことでしょう。

答えて

5

JavaScriptでUnicode文字を使用するには、適切にエスケープする必要があります。 Special Characters (JavaScript)

にMicrosoftのページを引用するあなたはHHHHは4桁の16進数で\ uhhhh脱出 シーケンスを、使用してUnicode文字を指定することができます。

font-awesome magnify-glass iconのユニコードIDはF002です。このように

あなたの代わりに、以下をお勧めします:それは働く理由

new Vue({ 
    el: '#app', 
    data: { 
     title: 'Vue Rendered Info', 
     icon: '\uf002' 
    } 
}); 
+0

あなたは説明できますか? – thanksd

+0

はい、これは完璧に動作します!なぜこれが働いているのか、もう一つはそうでないのか説明するためのリソースがありますか?私はそれがテンプレートを取って、それをJavaScript文字列に変換するVueと関係している愚直している... – Jessycormier

+0

@thanksd私の最新の編集を参照してください:) –

関連する問題