2014-02-17 54 views
2

我将我的应用程序放在聚合物元素中,我想使用其中的其他聚合物元素。要调用内部元素的所有方法,我试图使用$ []。 内幕外部聚合物元件I具有这样的:以编程方式访问聚合物内部元素

ImageEditor ime; 
DivElement div2; 
ImageTool.created(): super.created(){ 
    div2 = $["secondDiv"]; 
    ime = $["imageEditor1"] 
} 

在HTML我只是有:

<polymer-element name="da-imagetool"> 
<template> 
<div class="images" id="mainDiv"> 
    <da-imageeditor id="imageEditor1" name="ied"></da-imageeditor> 

在末端的SCRIPT SRC。 出于某种原因,我将imageEditor1分配给ime时出现异常。

Exception: type 'HtmlElement' is not a subtype of type 'ImageEditor' of 'value'. 

回答

1

它看起来像浏览器还没有升级<da-imageeditor>元素。

请确保您<import><da-imageeditor>元素,并在ImageEditor类声明上具有正确的@CustomTag注释。

+0

确实如此平庸。我在导入时忘了e。 – maugch

0

这很可能是导入路径的问题。 如果不使用类型无法识别正确的道路(标准化问题)

这个bug应该因为同时 https://code.google.com/p/dart/issues/detail?id=15953 来解决,但我没有,因为与聚合物工作。

显示您的导入路径(HTML和Dart)和您的应用程序的目录结构(您的入口页和聚合物元素的位置),然后我会看一看。

+0

谢谢,但它更平庸:/ – maugch

0

您使用的是哪种版本的飞镖聚合物?与0.9.5,以下行:

XElement.created(): super.created() { print($['el-id']); } 

void enteredView() { print($['el-id']); } 

在()创建的,所提到的元素给出什么而在enteredView(),它指的是阴影根的特定元素。

如果使用shadowRoot.querySelector('#el-id')代替速记图$['el-id'],则行为将消失。

+0

这并不奇怪。该元素必须进行初始化和“升级”。有一些生命周期回调,比如'ready'和'enteredView',已经完成了。 '$ ['el-id']'在构造函数中不起作用,因为集合还没有被其子对象的引用填充,但在'enteredView'中已经完成了。 'shadowRoot.querySelector'确实可以让孩子自己查找,所以它不依赖于这个来完成。 –

+0

@GünterZöchbauer让我们指出'奇怪'的质量。毕竟,这是一个有点超过顶部,因为这种行为是完全可以想象的。 – nunobaba

+0

文档可能会更好,但是当事情正在不断变化并不断变化时,文档可以保持原样。 –

相关问题