我正在尝试将一个元素的类扩展到另一个自定义元素,以便我可以访问第一个自定义元素的属性。
<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') { ... }
关于javascript - 扩展类聚合物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48809378/