javascript - 扩展类聚合物

标签 javascript polymer-1.0 polymer-2.x html-components

我正在尝试将一个元素的类扩展到另一个自定义元素,以便我可以访问第一个自定义元素的属性。

<link rel="import" href="../../bower_components/polymer/polymer-element.html">
<link rel="import" href="../../src/data-model/data-model.html">

<dom-module id="pkg-view">
  <template>
    <style>

    </style>

    <data-model id="dm"></data-model>
    <vaadin-table-new></vaadin-table-new>
  </template>

  <script>
   class PkgView extends DataModel {
   static get is() { return 'pkg-view'; }
   static get properties() {
     return {
      conf_package: {
       type: Object
      }
     }
   }
 };

customElements.define(PkgView.is, PkgView);
  </script>
</dom-module>

正如您所看到的,我尝试扩展的自定义元素是 DataModel,但是,当我尝试运行它时,我收到以下错误,并引用了脚本标记中的第一行:

Uncaught ReferenceError :DataModel 未定义

我确定导入路径是正确的。我以前没有扩展过元素,有什么明显的缺失吗? TIA

注意:我一直遵循以下指示:

https://www.polymer-project.org/2.0/docs/devguide/custom-elements#extending-other-elements

最佳答案

看起来data-model.html没有公开DataModel的类定义(例如,将其添加到window)。比直接引用类更灵活的方法是扩展从 customElements.get() 返回的构造函数 。对于你的情况,你可以这样做:

class PkgView extends customElements.get('data-model') { ... }

demo

关于javascript - 扩展类聚合物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809378/

相关文章:

html - dom-repeat 中的 polymer 动态元素名称

javascript - 如何在数据库中插入数据后重新加载页面

javascript - 带偏移量的 Chartjs 折线图数据集

javascript - 如何在 polymer 中实现错误跟踪?

javascript - Polymer2 + Firebase : TypeError class extends value undefined, 不是构造函数或 null

Polymer 2.0 - 我如何使用 Iron-ajax?

javascript - Gatsby JS 中的自定义 Javascript

javascript - 启动和停止计时器 : using 1 function for multiple instances

javascript - 如何在 Polymer 1.0 中使用 iron-dropdown?

Polymer.Base.importHref 和不稳定的网络状况