Polymer 用聚合物3注入HTML

Polymer 用聚合物3注入HTML,polymer,web-component,polymer-3.x,Polymer,Web Component,Polymer 3.x,我想在Polymer 3中的模板中添加一些HTML格式的文本。此HTML来自一个函数(使用“localize”从翻译文件获取字符串),如: 这是®文本。 我发现实现这一点的唯一方法是使用某个类向模板添加DIV标记(myText值来自函数): 返回html` [[myText]] `; …然后在ready()函数中,查询此元素并更改其内部HTML,并用标记替换文本(在本例中为®): ready() { super.ready(); var m

我想在Polymer 3中的模板中添加一些HTML格式的文本。此HTML来自一个函数(使用“localize”从翻译文件获取字符串),如:

这是®文本。
我发现实现这一点的唯一方法是使用某个类向模板添加DIV标记(myText值来自函数):

返回html`
[[myText]]
`;
…然后在ready()函数中,查询此元素并更改其内部HTML,并用
标记替换文本(在本例中为®):

ready() {
      super.ready();             

      var me = this;
      setTimeout(function(){
        var elements = me.shadowRoot.querySelectorAll(".marker");           
        elements.forEach(element => {
          element.innerHTML = element.innerHTML.replace("®","<sup>®</sup>");          
        });
      },500);
  }
ready(){
super.ready();
var me=这个;
setTimeout(函数(){
var elements=me.shadowRoot.queryselectoral(“.marker”);
elements.forEach(element=>{
element.innerHTML=element.innerHTML.replace(“®”,“®”);
});
},500);
}
这是可行的,但我不喜欢超时方法,因为我永远无法确定它是否会一直有效,并且您会在很短的时间内看到更改

但是,我之所以使用超时,是因为我没有找到任何生命周期事件,在这些事件中,我确信所有元素都已呈现并可用。例如,如果我使用dom if,这些元素还没有在ready()事件中呈现;所以我从querySelectorAll返回'null'


所以我的问题是:是否有其他方法(因此不使用超时方法)将HTML格式的字符串(来自函数)添加到模板中的元素

解决方案实际上非常简单:

return html`
  <div inner-h-t-m-l="[[myText]]"></div>
`;
返回html`
`;

解决方案实际上非常简单:

return html`
  <div inner-h-t-m-l="[[myText]]"></div>
`;
返回html`
`;
return html`
  <div inner-h-t-m-l="[[myText]]"></div>
`;