如何获得.content
嵌套的JS 访问权限<template>
?
我正在尝试<template>
使用我的imported-template
元素(从外部文件中获取模板内容)进行扩展,并且我想<imported-content>
以与 native 类似的方式实现<content>
。为此,我只是尝试
this.content.querySelector("imported-content")
但它发生了,嵌套模板this.content
是空的。
<script>
(function() {
var XHTMLPrototype = Object.create((HTMLTemplateElement || HTMLElement).prototype);
XHTMLPrototype.attachedCallback = function() {
//..
var distributeHere = this.content.querySelector("imported-content");
var importedContent = document.createElement("span");
importedContent.innerHTML = "Imported content";
distributeHere.parentNode.replaceChild(importedContent, distributeHere);
}
document.register('imported-template', {
prototype: XHTMLPrototype,
extends: "template"
});
})();
</script>
<template id="fails" bind>
<ul>
<template is="imported-template" bind="{{ appdata }}">
<li>
<imported-content></imported-content>
</li>
</template>
</ul>
</template>
JSFiddle在这里
我不确定这是错误、设计问题还是只是模板 shim 限制。
我想也许我在错误的生命周期回调中检查它,所以我MutationObserver
在这里尝试了小提琴,但也没有发生突变。