首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择自定义元素的子元素所在的位置?

如何选择自定义元素的子元素所在的位置?
EN

Stack Overflow用户
提问于 2020-05-20 16:48:46
回答 2查看 41关注 0票数 0

您好,我有一个自定义的webcomponent,我想决定在哪里放置由上部(父)元素插入的子元素。

使用我的自定义组件的上层html元素文件:

代码语言:javascript
复制
  <custom-component>
    <custom-component2></custom-component2>
  </custom-component>

描述自定义组件内部结构的文件:

代码语言:javascript
复制
<h5>title</h5>
 <p>paragraph</p>

DOM中的结果:

代码语言:javascript
复制
  <custom-component>
        <custom-component2></custom-component2>
       <h5>title</h5>
       <p>paragraph</p>
 </custom-component>

我想要的:

代码语言:javascript
复制
  <custom-component>
       <h5>title</h5>
       <p>paragraph</p>
        <custom-component2></custom-component2>
 </custom-component>

如何选择将诸如Angular中的ng-content或React中的props.children之类的内容放在哪里?我正在构建一个自定义的webcomponent库。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-20 16:53:37

您可以使用slots来显示面向父级的内容。此外,您还可以通过命名插槽来组织此操作。

这在Angular中与Content Projection配合使用。

您可以为这些ng-content命名。

票数 1
EN

Stack Overflow用户

发布于 2020-05-20 23:05:15

正如@FloWy所说,你可以使用<slot>

对于本机自定义元素,您需要使用Shadow DOM。

代码语言:javascript
复制
customElements.define( 'custom-component', class extends HTMLElement {
  constructor() {
    super()
    var sh = this.attachShadow( { mode: 'open' } )
    sh.innerHTML = `<h5>Title</h5>
        <p>Paragraph</p>
        Slot content: <slot></slot>`
  }
} )
代码语言:javascript
复制
<custom-component>
  <custom-component2>Child element</custom-component2>
</custom-component1>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61908882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档