【问题标题】:Can we put <content> inside a <shadow> tag?我们可以将 <content> 放在 <shadow> 标记中吗?
【发布时间】:2015-01-14 16:27:24
【问题描述】:

有没有办法将&lt;content select=".someClass"&gt;&lt;/content&gt; 之类的东西放在聚合物模板中的&lt;shadow&gt; 标记中,如下所示:

<shadow>
    <content select=".someClass"></content>
</shadow>

如果有怎么办?因为当我尝试时它根本不显示。

【问题讨论】:

  • 你能添加你正在尝试的代码吗?我们需要能够重现错误或至少检查您的尝试才能提供帮助。

标签: html polymer web-component shadow-dom


【解决方案1】:

没有声明的方式来做到这一点。可以使用 JavaScript 执行此操作,方法是选择您知道存在于 &lt;shadow&gt; 中的元素,然后使用 getDistributedNodes() 将内容拉出插入点并将其附加到该已知元素。

在 Polymer 中,您可以利用 automatic node finding 轻松做到这一点

如果您知道父元素中有一个带有idfoo 的元素,您可以执行以下操作:

// hacky pseudo code
// assuming you have a <content id="content"> element
var content = this.$.content.getDistributedNodes().array();
content.forEach(function(node) {
  this.$.foo.appendChild(node);
}.bind(this));

【讨论】:

  • 谢谢,我的问题是我正在尝试扩展core-scroll-header-panel,以便它可以切换Polymer Gmail 等模式,例如,当您选择一条消息时,整个标题会切换颜色等。 .我想将逻辑封装在scroll-altmode-header-panel之类的东西中。这是否意味着我应该使用组合而不是扩展?附言。你所有的教程都给了我很大的帮助!!谢谢
  • 是的,将其组合在处理交换内容的元素中可能比继承更容易。很多时候我不会尝试从具有 UI 的东西继承,因为它很难弄乱内部结构。
猜你喜欢
  • 2013-04-30
  • 2010-12-08
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 2011-05-20
  • 2012-06-03
  • 1970-01-01
相关资源
最近更新 更多