static get template() {
return html`
<p>This content is from ChildClass.</p>
<p>${super.template}</p>
<p>Hello again from ChildClass.</p>
<p style='color:red'>[[partHtml]] <==== this should be 'hello'</p>
`;
}
get partHtml()
{
return "<span>hello</span>";
}
我希望将partHtml
注入到类似于普通HTML的模板中。
我知道lit-element中不安全的HTML可以做到这一点,但是lit-element不能使用super.render()
东西,它不像Polymer-element那样方便。
答案 0 :(得分:1)
如何使用inner-h-t-m-l
属性
static get template() {
return html`
<p>This content is from ChildClass.</p>
<p>${super.template}</p>
<p>Hello again from ChildClass.</p>
<p style='color:red' inner-h-t-m-l="[[partHtml]]"></p>
`;
}
get partHtml()
{
return "<span>hello</span>";
}
答案 1 :(得分:1)
您可以使用多行字符串
static get template() {
return html`
<p>This content is from ChildClass.</p>
<p>${super.template}</p>
<p>Hello again from ChildClass.</p>
<p style='color:red'>${this.partHtml}</p>
`;
}
static get partHtml() {
return html`<span>hello</span>`;
}
答案 2 :(得分:0)
最后,当我调试到调用堆栈时,我找到了答案。
只需使用htmlLiteral
,关键代码就是这样
import {PolymerElement, html} from 'https://unpkg.com/@polymer/polymer@3.0.5/polymer-element.js'
import {htmlLiteral} from 'https://unpkg.com/@polymer/polymer@3.0.5/lib/utils/html-tag.js'
....
static get template() {
return html`<p style='color:red'>${this.partHtml} <==== this should be 'hello'</p>`;
}
static get partHtml()
{
return htmlLiteral `<span>hello</span>` ;
}