【问题标题】:Using the Aurelia <content> element使用 Aurelia <content> 元素
【发布时间】:2016-12-11 22:50:31
【问题描述】:

我正在尝试创建一个自定义元素,允许用户在创建元素时指定元素的内容,如下所示:

<custom-element title="Hello">
    <p>Lorem ipsum dolor sit amet.</p>
    <p>Lorem ipsum dolor sit amet.</p>
    <p>Lorem ipsum dolor sit amet.</p>
</custom-element>

我的自定义元素基本上是这样的:

<template>
    <div class="my-custom-element">
        <h2 if.bind="title">${title}</h2>
        <content></content>
    </div>
</template>

我完全猜到了&lt;content&gt; 元素的使用,它看起来不像这样工作。我也找不到任何关于它的文档。我已经看到其他人将它与指向特定元素的select 属性一起使用 inside 自定义元素的内容,但我想访问其中的所有内容 - 而不是特定元素。

我做错了什么?

【问题讨论】:

    标签: aurelia custom-element


    【解决方案1】:

    Aurelia 使用&lt;slot&gt; 元素在自定义元素中呈现内容。您可以在documentation hub 中阅读有关它的信息,或者查看blog post,其中他们解释了&lt;slot&gt; 元素的原因。基本上,它是Shadow DOM v1 specification 的一部分,Aurelia 团队尽可能地遵循标准。

    &lt;slot&gt; 的一个很酷的事情是,您可以在自定义元素中拥有多个命名元素,这在上面的帖子中进行了解释。

    因此,您的自定义元素将如下所示:

    <template>
        <div class="my-custom-element">
            <h2 if.bind="title">${title}</h2>
            <slot></slot>
        </div>
    </template>
    

    当然,这意味着您需要使用较新版本的 Aurelia,因为它是在 5 月底的某个时候添加的。

    【讨论】:

    • 太棒了。谢谢!不确定我从哪里得到&lt;content&gt; 元素?但我肯定在教程中看到过。
    • 他们之前使用的是&lt;content&gt;,但是一旦发布就使用了Shadow DOM标准。还有一些老帖子提到&lt;content&gt;
    猜你喜欢
    • 2017-11-22
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多