Polymer 1.x nl2br,或在模板

时间:2016-07-04 12:44:29

标签: polymer polymer-1.0

在自定义元素模板中,假设hello\world等字符串存储为this.foo

如何将\n替换为<br />

SE上发现的几个帖子提到Juicy(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 />未被评估为HTML元素

那么是否有一种正确的方法可以针对某些允许的标签验证字符串(在这种情况下为br),还是我真的必须采用Juicy方式?

你怎么看? ;)

1 个答案:

答案 0 :(得分:-1)

好吧,现在实现这一点的最好(也是唯一?)方法是将HTML字符串作为参数传递给我的自定义元素,而不是使用innerHTML在所述自定义中注入HTML元件...

这正是Juicy(https://github.com/Juicy/juicy-html)的作用。

结论,要么在自定义元素中使用innerHTML,要么使用Juicy;)