2016-06-30 5 views
0

У меня есть 2 класса, которые я создал, которые extend PolymerElement, мы можем назвать их: ElementA и ElementB.Динамическое добавление 1 PolymerElement к другому показывает в childNodes, но не запрашивается?

Итак, я хочу, чтобы добавить ElementB к Elementa динамически, так что я думал, чтобы добавить его к onReady вызова Elementa следующим образом:

class ElemenetA extends PolymerElement{ 
    ElementB get _myElement => $["bid"]; 
    onReady(){ 
    ElementB item = new ElementB(); //item has an id of "bid" 
    Polymer.dom(this).childNodes.add(item); 
    } 
} 

Так что, когда я посетить компонент, каждый раз, это будет добавьте новый элемент ElementB в childNodes. Хорошо, я разрешу это позже.

вопроса я наткнулся на то, что хотя ElementB оленьей кожи делает на всех, и если я пытаюсь вызвать метод из него, таких как открытых вроде этого: _myElement.open(); он будет говорить null does not have method open.

Что я делаю неправильно, чтобы ввести полимерный элемент в другой?

Моя общая цель состоит в том, чтобы вытащить общий элемент в кучу других Компонентов и просто использовать поведение, чтобы вставить этот повторно возникающий элемент в dom.

ответ

1

Вы не можете получить доступ к элементам, которые динамически добавляются с помощью $[...], это работает только для элементов, добавленных статически к элементам HTML. Даже если они находятся внутри <template is="dom-if"> или <template is="dom-repeat">$[...] невозможно использовать.

Использовать вместо этого $$('#bid')

+0

Это не работает. Есть ли что-то конкретное, я не хватает? – Fallenreaper

+0

Не знаю. Что значит «не работает»? Вы проверили, что элемент был добавлен в DOM в браузере devtools? –

+0

при просмотре инструментов dev, похоже, ничего не добавил, поэтому, когда он пытался ссылаться на '$$ (« # bid »), он возвращал null. Точная функция, которую я использовал, была: 'Polymer.dom (this) .childValues.add (_myElement);' Мне кажется, что это не удалось добавить элемент в dom, поэтому он не был доступен для запроса. – Fallenreaper

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

  • Нет связанных вопросов^_^