如何替换元素标签中的文本?

时间:2018-12-20 10:16:46

标签: polymer lit-element lit-html

对于

checked="checked"

html`${this.checked} < input type=checkbox ${this.checked}>`

当我在浏览器中检查输出时,而不是

  

已选中<输入类型=已选中复选框>

我要

  

选中了<input type=checkbox <!--{{lit-5238200558676867}}--==$0">

我在做什么错了?

NB单引号=勾号


更新

我已经通过创建一个元素来解决它,但是我猜有一个更简单的语法

let cb = document.createElement("input");

cb.setAttribute('type', 'checkbox');

 if (this.checked) {

   cb.setAttribute('checked', 'true');

 }

 html `${cb}`

1 个答案:

答案 0 :(得分:2)

答案是布尔属性需要一个?前缀。所以正确的语法是:

checked: boolean;
html`<input type=checkbox ?checked=${this.checked}>`

顺便说一句,当我最初有  html '<input type=checkbox ?checked=${this.checked}/>'抛出错误Boolean attributes can only contain a single expression。元素不必以/>结尾来避免这种情况。