【发布时间】:2014-01-18 21:28:52
【问题描述】:
在主要 HTML 页面中:index.html
<poly-container a="Hi">
<poly-item b="hi"></poly-item>
</poly-container>
在 Polymer HTML 定义中:polycontainer.html
<poly-container>
<template> ...
<content></content>
</template>
</poly-container>
在 Dart 类中: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) 投射OK; (chil[i] 是 Node 类型,“a”是 HtmlElement 类型(Node->Element->HtmlElement)
(2)* 例外:类型“HtmlElement”不是类型转换中“PolyItem”类型的子类型。
(3)* 例外:类型“HtmlElement”不是类型转换中“PolyItem”类型的子类型。
选项 2 和 3 在不同时间进行测试。
我想如果我们需要启动一些变量或调用 PolyItem 构造函数中的函数。 有人试图投射扩展类 PolymerElement?
【问题讨论】:
标签: dart dart-polymer