ショートバージョン:Vue.js:動的に作成されたHTMLでスコープ設定されたCSSを使用するにはどうすればよいですか?
私は、コンポーネントのメソッドでHTMLの文字列を生成しています、と私はそれがスコープのためのデータ属性が欠落しているため、スコープCSSでそのHTMLのスタイルを設定する方法を見つけ出すことはできません。
少し長いバージョン:
私は、文字列を受け取り、検索語のすべての出現を含むHTML文字列は<span class="match">
に囲まれた意味、強調表示返すハイライトと呼ばれる機能を持っています。しかし、私はこれを文字列で手動でやっているので、そのスパンは私のVueコンポーネントのスコープ付きCSSが動作する必要がある特別なデータ属性を取得しないので、それらのスタイルをスタイルするための唯一の方法は、スコープではありません。私はこれをする必要はありません。これを行うためのVue固有の方法がありますか? 関数は次のようになります。
// Source: http://stackoverflow.com/a/280805/2874789
function highlight(data, search) {
return data.replace(
new RegExp("(" + preg_quote(search) + ")", 'gi'),
"<span class=match>$1</span>"
);
}
おかげで(preg_quoteだけでエスケープする必要があるものをエスケープ機能です)!