2014-02-17 90 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

文檔可能會更好,但是當事情正在不斷變化並不斷變化時,文檔可以保持原樣。 –

相關問題