2014-01-18 92 views
0

在主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?

回答

0

这应该工作。

只需设置一个断点并运行您的应用程序。调试器停在断点处,向您显示类型和值等信息或范围内的变量。
您也可以添加print(chil[i]);,它通常会提供关于类型的信息(如果您不使用DartEditor或者调试器不工作,但有时仍会发生这种情况)。

你应该发布你的整个代码PolyContainer元素HTMLDart
如果它包含与该问题无关的代码,请创建一个允许重现问题并发布此代码的最小示例。