Web组件-包装子元素

千变万化的波

我有一个可以有孩子的网络组件。并且在JS上看到它希望将其当前子级包装在模式标记(已经有一个子级)内。

我目前有:

class Modal extends HTMLElement {
    connectedCallback() {
         // Wrap current children inside of dialog element
    }
}
customElements.define("modal-component", Modal);
<modal-component>
    <p> Lorem impsum </p>
</modal-component>

<!-- I want the logic in connectedCallback() to produce this with the p tag now being wrapped inside dialog -->
<modal-component>
    <dialog>
         <span class="close">&times;</span>
         <p> Lorem impsum </p>
    </dialog> 
</modal-component>

我尝试在里面写这个,connectedCallback但是即使有孩子它的价值this.innerHTML也是''

this.innerHTML = `<dialog><span class="close">&times;</span>${this.innerHTML}</dialog>`;

我尝试使用插槽,但是当我的Modal组件必须将多个子代放入一个插槽中时,该功能似乎只能覆盖一对一的注入

最好的方法是什么?

超锐利

使用插槽,您可以插入多个子代:

connectedCallback() {
     this.attachShadow( { mode: 'open' } )
         .innerHTML = `<span class="close">&times;</span>
                 <slot></slot>`
}

或者,如果不想使用<slot>,则需要确保在访问innerHTML属性时解析了custom元素的内容

可以使用setTimeoutrequestAnimationFrame也可以通过解析HTML代码后定义Custom Element来实现(如果可能):

<custom-element>...</custome-element>
<script>
  customElements.define( 'custom-element', ... )
</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的子级如何继承Web组件的宽度和高度?

来自分类Dev

当useShadowDom = false时查询组件的子元素

来自分类Dev

HMENU仅包装带有子元素的元素

来自分类Dev

在Web组件中扩展元素时,“ is”语法的意义是什么?

来自分类Dev

自定义HTML元素属性未显示-Web组件

来自分类Dev

如何访问包装在React-Redux的connect函数中的功能子组件中的ref?

来自分类Dev

在Web组件内动态添加元素

来自分类Dev

在Vue组件中动态包装匹配的子字符串

来自分类Dev

在元素丰富的Web组件中获取异步数据

来自分类Dev

是否可以通过编程方式在Web组件中放置元素?

来自分类Dev

打字稿错误-在包装的子组件中找不到反应上下文

来自分类Dev

如何包装element的所有子元素?

来自分类Dev

包装UI组件的模式

来自分类Dev

从自身访问Web组件元素

来自分类Dev

如何使用Web组件修改标准HTML元素?

来自分类Dev

当useShadowDom = false时查询组件的子元素

来自分类Dev

将元素包装在主要元素的子元素周围。JQLite

来自分类Dev

HMENU仅包装带有子元素的元素

来自分类Dev

Web组件,如何通过Id获取元素?

来自分类Dev

如何使父/包装组件“触发”或在子组件上调用方法?

来自分类Dev

避免使用<span>元素包装Salesforce Apex组件

来自分类Dev

单击标签未聚焦自定义元素(Web组件)

来自分类Dev

如何正确访问试剂组件的子元素?

来自分类Dev

ReactJS 子元素在 1 个组件中操作子元素

来自分类Dev

Polymer 2.x:在 ES6 Web 组件中包装外部 JS 库

来自分类Dev

angular2 ngfor 子组件元素

来自分类Dev

访问 ... 子组件的父组件的父组件的 html 元素

来自分类Dev

如何在 Angular 中“扩展”和包装自定义组件或本机元素?(以 React 为例)

来自分类Dev

如果悬停子组件的元素,则使元素不可见

Related 相关文章

  1. 1

    我的子级如何继承Web组件的宽度和高度?

  2. 2

    当useShadowDom = false时查询组件的子元素

  3. 3

    HMENU仅包装带有子元素的元素

  4. 4

    在Web组件中扩展元素时,“ is”语法的意义是什么?

  5. 5

    自定义HTML元素属性未显示-Web组件

  6. 6

    如何访问包装在React-Redux的connect函数中的功能子组件中的ref?

  7. 7

    在Web组件内动态添加元素

  8. 8

    在Vue组件中动态包装匹配的子字符串

  9. 9

    在元素丰富的Web组件中获取异步数据

  10. 10

    是否可以通过编程方式在Web组件中放置元素?

  11. 11

    打字稿错误-在包装的子组件中找不到反应上下文

  12. 12

    如何包装element的所有子元素?

  13. 13

    包装UI组件的模式

  14. 14

    从自身访问Web组件元素

  15. 15

    如何使用Web组件修改标准HTML元素?

  16. 16

    当useShadowDom = false时查询组件的子元素

  17. 17

    将元素包装在主要元素的子元素周围。JQLite

  18. 18

    HMENU仅包装带有子元素的元素

  19. 19

    Web组件,如何通过Id获取元素?

  20. 20

    如何使父/包装组件“触发”或在子组件上调用方法?

  21. 21

    避免使用<span>元素包装Salesforce Apex组件

  22. 22

    单击标签未聚焦自定义元素(Web组件)

  23. 23

    如何正确访问试剂组件的子元素?

  24. 24

    ReactJS 子元素在 1 个组件中操作子元素

  25. 25

    Polymer 2.x:在 ES6 Web 组件中包装外部 JS 库

  26. 26

    angular2 ngfor 子组件元素

  27. 27

    访问 ... 子组件的父组件的父组件的 html 元素

  28. 28

    如何在 Angular 中“扩展”和包装自定义组件或本机元素?(以 React 为例)

  29. 29

    如果悬停子组件的元素,则使元素不可见

热门标签

归档