聚合物:无法移除儿童

时间:2016-12-21 14:20:15

标签: javascript node.js polymer getelementbyid removechild

我正在尝试将元素动态加载到我的应用中,但是我在删除已导入的元素时遇到问题。

要导入我的元素,我打电话:

openNewElement: function(newElement) {
        this.newElement = newElement;
        var resolvedUrl = this.resolveUrl('newelement-view' + '.html')
        this.importHref(resolvedUrl, null, null, true);
    },

这成功导入并显示元素。现在我尝试使用以下许多不同的实现删除相同的元素:

closeNewElement: function() {
    Polymer.dom(this).removeChild('newelement-view');
},

但是,无论我以不同方式注册节点和/或使用已注册节点的实例调用removeChild();函数,我都会收到错误:

  

要删除的节点不是此节点的子节点:[object HTMLElement]

在潜入属性时,我可以看到newelement-view已注册为父级的子级,而newelement-view已将正确的父级注册为父级。我已经尝试了从官方聚合物文档和我在堆栈溢出上找到的任何东西,但到目前为止,无济于事。

有关如何移除孩子或以更好的方式注册儿童的任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:0)

以下是如何操作的示例

<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel="import" href="polymer/polymer.html">
<dom-module id="remove-child">
  <template>
    <style></style>
    <div class="firstChild">first chilld</div>
    <p class="secondChild">second chilld</p>
  </template>
</dom-module>
<script>
  Polymer({
    is: 'remove-child',
    attached: function() {
      this.removeChild(this.$$('.secondChild'));
    }
  })
</script>


<remove-child></remove-child>