将 1 个 PolymerElement 动态添加到 childNodes 中的另一个节目但不可查询?

Dynamically adding 1 PolymerElement to another shows in childNodes but not queryable?

我创建了 2 个 类 extend PolymerElement,我们可以称它们为:ElementA 和 ElementB。

所以,我想动态地将 ElementB 添加到 ElementA,所以我想将其添加到 ElementA 的 onReady 调用中,如下所示:

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。没关系,我稍后会解决这个问题。

我遇到的问题是 ElementB 根本不呈现,如果我尝试从它调用方法,例如 open,如下所示:_myElement.open();它会说 null does not have method open.

将 PolymerElement 注入另一个 PolymerElement 做错了什么?

我的总体目标是从一堆其他组件中提取一个公共元素,然后使用一种行为将这个重复出现的项目注入 dom。

您无法访问使用 $[...] 动态添加的元素,这仅适用于静态添加到元素 HTML 的元素。即使它们在 <template is="dom-if"><template is="dom-repeat"> $[...] 中也无法使用。

改用$$('#bid')