【发布时间】:2019-05-08 22:01:23
【问题描述】:
我用 StencilJS 编写了一个 Web 组件。
开槽元素只能在特定情况下呈现。所以有一个可选元素。
<div>
<slot name="title"/>
{this.active && (<slot name="content"/>)}
</div>
web组件的调用如下:
<my-test>
<div slot="title">This is a test</div>
<div slot="content">123</div>
</my-test>
这在 Microsoft Edge 和 IE11 中不起作用。对于 Chrome 和 Firefox,一切都很好。
我知道不支持插槽:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot#Browser_compatibility
但显然 stenciljs 中有一些 polyfill。
有没有关于该主题的经验?
【问题讨论】:
-
你在说哪些 polyfill?也让我们知道,你是如何实现它的?如果有任何链接,请尝试提供给我们。它可以提供更好的想法。如果我们谈论一般性,那么您应该在 IE 和 Edge 中使用任何其他替代插槽,因为它不受支持。您可以使用 CSS & JS 隐藏特定元素。
-
@Deepak-MSFT:问题是关于 StencilJS。是的,IE11 本身不支持插槽,但 Stencil 可以通过 polyfill 模拟它们。
-
这就是我们需要知道他正在使用哪种 polyfill 以及他如何在代码中使用它来复制问题并检查 IE 或 polyfill 是否存在任何问题。
-
我认为这是 stenciljs 的 polyfills。也许这是一个错误。我将在 stencils github 页面上打开一个问题。
-
我认为问题不在于模板逻辑。在 IE11 中,如果您在 Stencil 组件元素中包含任何内容,即使您使用未定义的插槽名称或根本没有定义插槽,它也会显示出来。 (我正在运行 Stencil 0.18.1。)
标签: html internet-explorer microsoft-edge web-component stenciljs