javascript - 模板内容是一个空文档片段

标签 javascript html thingsboard

不是 Template tag content is empty 的副本- Angular 中的错误,而我的问题是关于 Vanilla Js。


我正在研究 ThingsBoard小部件。在 the HTML tab ,我有这个简单的模板:

<template id="myTemplate">
  <div>Test</div>
</template>

在 JS 选项卡中,我试图获取此模板的内容(最终克隆它):

const template = document.querySelector("#myTemplate");
console.log(template.content);

但是,我得到一个 DocumentFrgament : Empty document-fragment

这很奇怪,因为当我在 ThingsBoard 之外运行它时(例如这里的 StackOverflow 片段),我确实得到了模板的内容:

const template = document.querySelector("#myTemplate");
console.log(template.content);
<template id="myTemplate">
  <div>Test</div>
</template>

Non-empty ducment-fragment

有什么想法吗?

最佳答案

如果您的 ThingsBoard 示例使用的是 React 或类似的 DOM 库,它可能会以编程方式创建 DOM,这可能会导致此问题。

<template>使用 appendChild 以编程方式构建, content仍然是空的。 例如:

const template = document.createElement('template');
template.appendChild(document.createElement('div'));
console.log(template.content); // #document-fragment (empty)

而不是 template.appendChild , 你必须使用 template.content.appendChild使其正常工作。

我希望这对您有所帮助!

关于javascript - 模板内容是一个空文档片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70677604/

相关文章:

javascript - AngularJS 根据条件改变 <li> 元素标签

amazon-web-services - 如何从我的 AWS 实例的公共(public) IP 地址运行 ThingsBoard

kubernetes - 如何将我们的自定义Thingsboard部署到Kubernetes Engine?

python - PyJWT 引发签名验证失败

javascript - javascript 正则表达式中反向引用的比较

javascript - 仅具有最高 z-index 的元素的单击处理程序

html - 我的 iPhone 6 上的 Safari 忽略了 overflow-x : hidden

html - CSS Grid 在设置 grid-row 时不会包裹 child

javascript - 防止 XUL notificationBox 在点击按钮时关闭

Javascript 阻塞直到图像预加载完成?