2014-02-17 4 views
2

Я прилагаю свое приложение к элементу Polymer, и я хочу использовать внутри него другой полимерный элемент. Чтобы вызвать весь метод внутреннего элемента, я пытаюсь использовать $ []. Инсайдерская внешний полимерный элемент у меня есть это:Внутренний элемент Acces Polymer программно

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> 

с СРК сценария в конце. По какой-то причине я получаю исключение, когда назначаю imageEditor1 ime.

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

ответ

1

Похоже, что браузер не модернизировал <da-imageeditor> элементов.

Убедитесь, что вы <import><da-imageeditor> элемента и есть правильный @CustomTag аннотация декларации ImageEditor класса.

+0

Это было действительно так банально. Я забыл e в импорте. – maugch

0

Это, скорее всего, проблема с пути импорта. Если вы не используете правильный путь тип не распознается (проблема канонизации)

Эта ошибка должна быть решена, так как некоторое время https://code.google.com/p/dart/issues/detail?id=15953 , но я не работал с полимером с тех пор.

Покажите свои пути импорта (HTML и Dart) и структуру каталогов вашего приложения (где ваша страница входа и ваши элементы Полимера), тогда я посмотрю.

+0

Спасибо, но это было более банально:/ – maugch

0

Какую версию dart-polymer вы используете? С 0.9.5, следующими строками:

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

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

В создал(), упомянутый элемент ничего не дает, тогда как в enteredView(), это не относится к конкретному элементу теневого корня.

Поведение исчезает, если вместо сокращенной карты используется shadowRoot.querySelector('#el-id')$['el-id'].

+0

Это не очень странно. Элемент должен быть инициализирован и «обновлен». Есть некоторые обратные вызовы жизненного цикла, такие как 'ready' и' entryView', где это уже сделано. '$ ['el-id']' не работает в конструкторе, потому что коллекция еще не заполнена ссылками на его дочерние элементы, а в 'entryView' это уже было сделано. 'shadowRoot.querySelector' выполняет поиск самих пользователей, поэтому он не зависит от того, как это будет завершено. –

+0

@ GünterZöchbauer Давайте гвоздь, что «странно» качественно. В конце концов, это немного выше, так как такое поведение вполне возможно. – nunobaba

+0

Документация может быть лучше, но сможет поддерживать ее, когда все просто развивается и меняется постоянно и быстро. –

Смежные вопросы