Polymer 1.0扩展元素-带有自定义元素的纸张对话框

Polymer 1.0扩展元素-带有自定义元素的纸张对话框,polymer,Polymer,我正在尝试创建一个自定义元素,在纸质对话框中播放youtube视频。所以videoPlayer=Polymer.dom(this.root).querySelector('video-player')继承/有权访问该纸张对话框sopen方法,我正在尝试扩展我的自定义元素。这是不工作,但希望我在正确的轨道上,有人可以正确地告诉我 我使用的是Polymer 1.0,但我只需要使用扩展元素 <link rel="import" href="../bower_components/paper-di

我正在尝试创建一个自定义元素,在
纸质对话框中播放youtube视频。所以
videoPlayer=Polymer.dom(this.root).querySelector('video-player')继承/有权访问该
纸张对话框
s
open
方法,我正在尝试扩展我的自定义元素。这是不工作,但希望我在正确的轨道上,有人可以正确地告诉我

我使用的是
Polymer 1.0
,但我只需要使用扩展元素

<link rel="import" href="../bower_components/paper-dialog/paper-dialog.html">
<link rel="import" href="../bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="../bower_components/iron-icons/iron-icons.html">
<link rel="import" href="../bower_components/google-youtube/google-youtube.html">
<link rel="import" href="../bower_components/polymer/polymer.html">

<dom-module id="video-player">
  <template>
      <div class="layout horizontal">
        <paper-button dialog-dismiss>
          <paper-icon-button icon="arrow-back"></paper-icon-button>
        </paper-button>
      </div>
      <div style="height: 100%; width: 100%">
        <google-youtube style="height: 100%;"
          video-id="YMWd7QnXY8E"
          rel="1"
          start="5"
          playsinline="0"
          controls="2"
          showinfo="0"
          width="100%"
          height="100%"
          autoplay="1">
        </google-youtube>
      </div>
  </template>

  <script>
    Polymer({
      is: "video-player"
    });
  </script>

聚合物({
是:“视频播放器”
});

聚合物();


正如评论中提到的,您还不能扩展自定义元素,因此现有的模式(或至少是我使用的模式)是尽可能使用行为,尽可能不使用包装器

e、 g

作为补充说明,您可以始终挂接
s“properties”属性,并以编程方式添加API

也许像这样的东西会有用:(未经测试!)


扩展非本机元素目前不是1.0中的一项功能。我如何将其反转并扩展
paper dialog
,并对其进行自定义,使其像自定义元素一样?正如@miyamoto所说,您无法扩展非本机元素,因此您正在使用或创建的任何聚合物元素都无法扩展。您只能扩展本机HTML元素,如
input
td
li
等。这可能在将来的版本中实现。您要查找的功能已移至“行为”。看看这里,你会发现纸质输入使用了3种不同的行为。要“扩展”纸质输入,基本上只需要在元素中包含这些相同的行为。这是用于
纸质对话框
,而不是
纸质输入
。我试图仅在一个自定义元素上导入bevaior,但这不是我的解决方案。我需要实际使用的
paper dialog
的open方法,因此继承该方法不会将其链接到特定实例。
<paper-dialog name="video-player" extends="video-player">
  <template>
    <shadow></shadow>
  </template>
  <script>
     Polymer();
  </script>
</paper-dialog>
<video-player></video-player>
<dom-module id="popup-video-player">
  <template>
    <video-player></video-player>
  </template>
  <script>
    Polymer({
      is: 'popup-video-player',
      behaviors: [Polymer.PaperDialogBehavior],
      ...
    });
  </script>
</dom-module>
  <input is="iron-input" id="input"
    aria-labelledby$="[[_ariaLabelledBy]]"
    aria-describedby$="[[_ariaDescribedBy]]"
    disabled$="[[disabled]]"
    title$="[[title]]"
    ... >
Polymer({
  ...
  properties: (function () {
    var prop = {
      //special properties specific to the pop up version of video-player
      //..obviously be careful to avoid name space conflicts.
    };
    var video_player = document.createElement('video-player');
    video_player.properties.keys().forEach( function(key) {
      props[key] = video_player[key];
    });
    return props;
  }()),

});