在主HTML页面:的index.html否铸聚合物元件
<poly-container a="Hi">
<poly-item b="hi"></poly-item>
</poly-container>
在聚合物HTML定义:polycontainer.html
<poly-container>
<template> ...
<content></content>
</template>
</poly-container>
在飞镖类:polycontainer.dart ...有标记<content>
用于渲染外部DOM; ...和2类:PolyContainer和PolyItem
processList() // calling from PolyContainer Constructor;
{
PolyItem cl;
HtmlElement a;
ContentElement cont=shadowRoot.querySelector('content');
List<Node> chil=cont.getDistributedNodes();
for (var i=0; i < chil.length; i++) {
if (chil[i].nodeName == 'POLY-ITEM') {
a=chil[i]; // (1)
cl=chil[i] as PolyItem; // (2)
cl=a as PolyItem; // (3)
}
chil[i].remove();
}
}
(1)Cast OK; (chil [i]是Node类型,“a”是类型HtmlElement(Node-> Element-> HtmlElement)
(2)*例外:类型'HtmlElement'在类型转换中不是类型'PolyItem'的子类型。
(3)*例外:。类型 '的HtmlElement' 不是类型的类型转换的子类型 'PolyItem'
选项2和3在不同时间进行测试
我认为,如果我们需要在PolyItem构造函数中启动某个变量或调用一个函数。 有人试图投射一个扩展类PolymerElement?