Как заменить текст внутри тега элемента? - PullRequest
0 голосов
/ 20 декабря 2018

Для

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 голосов
/ 20 декабря 2018

Ответ заключается в том, что логическим атрибутам требуется префикс ?.Таким образом, правильный синтаксис:

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

Кстати, когда у меня изначально было html '<input type=checkbox ?checked=${this.checked}/>', оно выдало ошибку Boolean attributes can only contain a single expression.Элемент не должен заканчиваться на />, чтобы избежать этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...