Расширяющийся класс Полимер

1

Я пытаюсь расширить класс элемента на другой пользовательский элемент, чтобы я мог получить доступ к свойствам из первого настраиваемого элемента.

<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

  • 0
    что находится в data-model.html ? есть ли на самом деле класс внутри? может быть, это элемент Гибрид или Полимер 1, что означает, что его нельзя продлить ...
Теги:
polymer-2.x
polymer-1.0
html-components

1 ответ

0

Похоже, что data-model.html не раскрывает определение класса DataModel (например, добавляет его в window). Более гибкий подход, чем непосредственное обращение к классу, - это расширение constructor возвращаемого из customElements.get(). В вашем случае вы можете сделать следующее:

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

демонстрация

  • 0
    спасибо за помощь с этим. Я пришел к выводу, что расширение классов таким способом просто расширяет область применения html модели данных, а не просто раскрывает ее свойства. Что я на самом деле хочу сделать, так это перемещать данные между двумя дочерними htmls без запуска глобальных событий. Есть идеи, как лучше всего это сделать? ТИА

Ещё вопросы

Сообщество Overcoder
Наверх
Меню