在主要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 ...为渲染外部DOM提供标记<content>
; ......和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-&gt; Element-&gt; HtmlElement)
(2)*异常:类型'HtmlElement'不是类型转换中'PolyItem'类型的子类型。
(3)*异常:类型'HtmlElement'不是类型转换中'PolyItem'类型的子类型。
选项2和3在不同时间进行测试。
我想如果我们需要在PolyItem构造函数中启动一些变量或调用一个函数。 有人试图投射扩展类PolymerElement?
答案 0 :(得分:0)
这应该有效。
只需设置断点并运行您的应用即可。调试器在断点处停止,并向您显示类型和值或范围中的变量等信息
您还可以添加print(chil[i]);
,它通常会提供有关类型的信息(如果您不使用DartEditor或调试器不起作用,有时仍会发生)。
您应该发布PolyContainer
元素HTML
和Dart
的完整代码。
如果它包含与问题没有任何关系的代码,请创建一个允许重现问题并发布此代码的最小示例。