В Dart должен element.html(" ") встречаться в контексте тега body?
TableElement table = new TableElement();
document.body.children.add(table);
table.children.add(new Element.html("<tr><td>test</td></tr>"));
Приведенный выше фрагмент кода возвращает ошибку: "Uncaught Bad state: No element". Чтение документации API на веб-сайте DartLang объясняется тем, что при использовании конструктора Element.html ("") фрагмент HTML анализируется так, как если бы он имел место в контексте тега
. Поэтому нам нужно написать:new Element.html("<table><tr><td>test</td></tr></table>")
Тем не менее, читая "дротик в действии", Крис Бакетт использует этот же синтаксис при построении таблицы.
Что-то изменилось или я что-то недопонимаю?
1 ответ
Решение
Это "особенность" браузера. <tr>
элемент не может существовать сам по себе и просто удаляется из HTML, когда находит его.
Документы для new Element.html()
говорит
Создает элемент HTML из допустимого фрагмента HTML.
В качестве альтернативы вы можете использовать
table.append(
new TableRowElement()..append(new TableCellElement()..text = 'test'));