Polymer:将父元素包裹在子元素周围

标签 polymer web-component

使用 Polymer 可以轻松扩展另一个 Web 组件。您可以使用<shadow>在子模板中标记父阴影 dom 所在的位置 ( polymer docs )。

我正在寻找扩展一个元素,但是以一种子元素的特定部分被父元素包裹的方式。我在一些模板引擎中使用过这种设置。这可以通过 html include 来完成吗?

父级::

<link rel="import" href="/bower_components/polymer/polymer.html">

<polymer-element name="tpl-parent" noscript>
  <template>
    <section>
      <content></content><!-- put the child template here -->
    </section>
  </template>
</polymer-element>

child ::

<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="parent.html">

<polymer-element name="tpl-child" extends="tpl-parent" noscript>
  <template>
    <shadow>
      <p>whatever I put here should be "wrapped" by the _section_ in parent</p>
    </shadow>
  </template>
</polymer-element>

最佳答案

你不能像这样声明式地做到这一点。但我认为您可以利用自动节点查找将子节点移动到父节点的部分(如果它有 id)。

<polymer-element name="x-foo">
  <template>
    <style>
      #wrapper p { color: red; }
    </style>
    <section id="wrapper">
      <p>Hello from x-foo</p>
    </section>
  </template>
  <script>
    Polymer({

    });
  </script>
</polymer-element>

<polymer-element name="x-bar" extends="x-foo">
  <template>
    <p id="foo">I was wrapped by x-foo</p>
    <p>I was not wrapped</p>
    <shadow></shadow>
  </template>
  <script>
    Polymer({
      domReady: function() {
        this.$.wrapper.appendChild(this.$.foo);
      }
    });
  </script>
</polymer-element>

<x-bar></x-bar>

关于Polymer:将父元素包裹在子元素周围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27134444/

相关文章:

javascript - polymer 项目、触摸事件

api - Go 作为后端 API,Polymer 前端

html - 无效字符错误 : "fred"

django - 在 Django 中使用 Polymer

javascript - CSS 样式未应用于自定义组件

javascript - 通过 webdriver.io 版本 7 访问 ShadowElements

html - 如何将图像插入 Web 组件?

javascript - 在没有jquery的情况下单击Polymer js展开div

javascript - 在 HTML5 Web 组件导入中执行 jquery

Polymer 2 中的 Polymer 1.0 组件