【问题标题】:How to render html tag inside Template literals (LitElement)?如何在模板文字(LitElement)中呈现 html 标签?
【发布时间】:2021-02-19 22:20:20
【问题描述】:

我想要带有 foo-nr1、foo-nr2 ... 的模板文字并将它们用作 HTML 标记。

render(
        html `<foo-nrX></foo-nrX>`,
        document.querySelector('#bigfoo')
      );

因为 X 是占位符,所以我尝试了这样的一切:

        html `<${fooplaceholder}></${fooplaceholder}>`,

或者来自类似的q/a这里:

const getHTML = message => unescape(message).replace('\\', '');
const setHTML = escape('<' + foo-nrX + '></' + foo-nrX + '>');

        html `${getHTML(setHTML)}`,

但是,最好的结果是: "&lt;foo-nrX&gt;&lt;/foo-nrX&gt;"

而不是: &lt;foo-nrX&gt;&lt;/foo-nrX&gt;

所以他没有将其解析为 HTML 标签,而是在网站中显示为字符串。

【问题讨论】:

    标签: javascript html lit-element template-literals


    【解决方案1】:

    我自己找到了解决方案:

    import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';
    
    const foo = '<' + fooNrX + '></' + fooNrX + '>';
    
    render(
            html `${unsafeHTML(foo)}`,
            document.querySelector('#bigfoo')
          );
    

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2019-02-28
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多