2016-07-04 10 views
0

カスタム要素テンプレートでは、hello\worldのような文字列をthis.fooとして格納します。Polymer 1.x nl2br、またはテンプレートのhtmlを検証するためのクエスト

\n<br />をどのように置き換えることができますか?

SEで見つかったいくつかの記事が言及ジューシー(https://github.com/Juicy/juicy-html) その他ラッパーとしてカスタム要素を使用します(Bind text with line breaksを参照)

しかし、もっと簡単な方法はありません、何のようなものをやっについて:

<template is="dom-repeat" items="{{bubbles}}"> 
    <li><span class="content">{{getContent(item)}}</span></li> 
</template> 

そして

getContent: function(item) { 
    return item.content.replace(/\\n/g, "<br />") 
} 

問題は<br />がevaluaではないということですHTML要素としてテッド

特定の許可されたタグ(この場合はbr)に対して文字列を検証する適切な方法はありませんか、それとも本当にジューシーな方法に移行する必要がありますか?

あなたはどう思いますか? ;)

+0

それはあなたが 'innerHTML'プロパティを使用するかどうかを確認HTML''のように計算されます[この](http://stackoverflow.com/questions/21060890 /ポリマー要素定義のhow-to-assign-html-entities)を参照してください。私はあなたが関数から呼び出していることは知っていますが、これを使用できるかどうかを確認してください。 – a1626

+0

これは、コンテンツの周りにダミーのラッパー要素を使用することと同じです。これは可能ですが、バズーカを使ってフライを撃つような感じです。/ HTMLをテンプレートに挿入するときに、そのHTMLを検証して注入する方法があるのでしょうか? – rud

答えて

-1

このカスタム要素にHTMLを挿入するには、innerHTMLを使用するよりも、これを実現するための最良の(そして唯一の)方法は、カスタム要素の引数としてHTML文字列を渡すことです...

まさにジューシー(https://github.com/Juicy/juicy-html)と同じです。

結論、カスタム要素でinnerHTMLを自分で使用するか、またはジューシーを使用するか;)

関連する問題