Я пытаюсь расширить класс элемента на другой пользовательский элемент, чтобы я мог получить доступ к свойствам из первого настраиваемого элемента.
<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 не определен
Я уверен, что путь импорта правильный. Раньше я еще не расширил элементы, нет ли чего-то очевидного пропавшего без вести? ТИА
NB: Я выполнял следующие инструкции:
https://www.polymer-project.org/2.0/docs/devguide/custom-elements#extending-other-elements
Похоже, что data-model.html
не раскрывает определение класса DataModel
(например, добавляет его в window
). Более гибкий подход, чем непосредственное обращение к классу, - это расширение constructor
возвращаемого из customElements.get()
. В вашем случае вы можете сделать следующее:
class PkgView extends customElements.get('data-model') { ... }
data-model.html
? есть ли на самом деле класс внутри? может быть, это элемент Гибрид или Полимер 1, что означает, что его нельзя продлить ...