【发布时间】:2014-06-11 19:25:02
【问题描述】:
是否可以确保某些自定义元素仅在特定自定义元素中可用?
例如,我创建了一个site-heading 和一个help-icon 元素。
<polymer-element name="site-heading">
<template>
<h1>
<content></content>
<content select="help-icon"></content>
</h1>
</template>
<polymer-element>
<polymer-element name="help-icon">
<template>
<span class="help">
<img src="/image/help.png" />
<content></content>
</span>
</template>
<polymer-element>
现在这不是最实际的例子,但是,假设help-icon 是一个高度专业化的元素,仅在site-heading 的上下文中才有意义。 如何强制该元素仅在 site-heading 内部使用?
耶!
<site-heading>
Super Cool Site Header
<help-icon>Help Me!</help-icon>
</site-heading>
不!
<help-icon>Help Me!</help-icon>
更新 2:@ebdel
似乎这种关系并没有得到真正的支持,甚至可能不在规范中。这是一个真实的案例,我认为考虑到范围内(孤立的?)元素应该很重要。
假设供应商将创建一个可交付的 Web 组件。例如,SoundCloud 将创建一个 <soundcloud-player> 元素。玩家需要一个曲目列表,因此他们创建了一个<track-info attributes="track-id crop etc">{{HTML for description pane}}</track-info> 元素。
<track-info> 元素仅作为<soundcloud-player> 的子元素有用:
目前,理论上
<track-info>完全没问题,直到新的 Web 组件定义了<track-info>元素。供应商可能创建的每个元素都以他们的名称为前缀真的有意义吗? IE。
<soundcloud-track-info>
我们是否应该将此对话转移到其他地方,因为我们似乎已经有了原始问题的答案?
【问题讨论】:
标签: polymer web-component shadow-dom