http://jsbin.com/zadejogide/1/edit?html,output
这把小提琴的作品。 这并不直接回答你的问题,但它解释了会发生什么。
如果将“my-element”嵌套到antoher元素中,则该元素的Light DOM隐藏在外部元素的阴影树中(在本例中为“my-test”),这意味着:模板标记找不到它。
可能的解决方案
,你可以采用模板,并将其添加到“我的元素”的shadowRoot(在某种程度上模板承认其参与了shadowRoot但没有其他人)喜欢这里Using template defined in light dom inside a Polymer element(动态模板创建)
或者用is =“auto-binding”尝试这个。
<polymer-element name="my-element">
<template>
<template id="template" is="auto-binding" ref="foo">
should not get displayed
</template>
</template>
<script>
Polymer('my-element', {
domReady: function() {
var foo = this.querySelector('#foo');
if(foo){
this.shadowRoot.appendChild(foo);
}
}
});
</script>
</polymer-element>
这两种方法不“真”回答你的问题,但他们对这种情况可以接受workarouns。
我也尝试在javascript中设置模板的ref_属性,但没有成功......并且对私有成员进行戳动并不是一个很好的做法。
http://jsbin.com/wukaloqacedo/1/这类作品,但它再次显示my-test元素的输出。 – user1259201 2014-08-31 00:06:45