Svelte:以可重用的方式关联标签和输入

2023-12-22

我正在构建一个 Svelte 输入组件,该组件应该在同一页面上多次使用。

<div>
    <label>{label}</label>
    <div>
        <input bind:value>
        <!-- some more elements -->
    </div>
</div>

尝试关联标签和输入我遇到以下问题:

  • 我无法通过更改外部来使用隐式关联<div> to <label>,因为输入不是直接子项。
  • 我无法使用标签for属性,因为重用该元素会创建多个相同的 id。

有没有办法在 Svelte 中创建组件实例唯一 id(前置或后置),或者是否有其他解决方案来解决此问题。


或者手动设置随机字符串作为 id 是最好的解决方案吗?

<script>
    const id = random_string();
    /* ... */
</script>

<div>
    <label for={id}>{label}</label>
    <div>
        <input {id} bind:value>
        <!-- some more elements -->
    </div>
</div>

您可以在模块上下文中定义一个计数器,然后使用它来创建唯一的 ID

输入.svelte

<script context="module">
    let counter = 0
</script>
<script>
        export let label
        let value
        let eltId = 'input_'+ counter++
</script>

<div>
    <label for={eltId}>{label}</label>
    <div>
        <input id={eltId} bind:value>
    </div>
</div>    

应用程序.svelte

<script>
    import Input from './Input.svelte'
</script>

<Input label='Select Country' />
<Input label='Select Country' />
<Input label='Select Country' />

See REPL https://svelte.dev/repl/5e0255a5fa7b4fb59e7ef8e83c7e4a82?version=3.32.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Svelte:以可重用的方式关联标签和输入 的相关文章

随机推荐

  • 如何避免实现 const 和非常量迭代器的代码重复?

    我正在实现一个具有类似 STL 接口的自定义容器 我必须提供一个常规迭代器和一个常量迭代器 这两个版本的迭代器的大部分代码是相同的 我怎样才能避免这种重复 例如我的容器类是Foo 我正在实施FooIterator and FooConstI
  • 在 NSTableView 的同一单元格中显示图标和文本

    我想在表视图的单个单元格中的文本项旁边显示一个图标 我想要实现的一个示例是 系统偏好设置 gt 用户帐户 gt 登录项 中的应用程序列表 有什么好办法呢 这里有一个很好的例子如何做到这一点 http www cocoadev com ind
  • Data.table 与 cor.test 按组

    当我使用data table要使用 cor test 函数计算每个组的相关性 它适用于默认方法 即 pearson 但不适用于 spearman 我收到一个data table error library data table dd lt
  • C++ VS 错误:提供 std::experimental::filesystem 的 标头已被 Microsoft 弃用并将被删除

    我编码了C on 视觉工作室 Windows 10 并收到此错误 error The
  • Spring事务上下文不持久保存数据

    我知道我的问题是一个常见问题 但是我在这里检查了很多问题 检查了Spring文档 我真的不知道我做错了什么 我的问题 我有一个使用 JPA 的 Spring WebFlow 项目 实现 OpenJPA MySQL 数据库 我使用 Sprin
  • Sails JS 和 Mongodb 唯一属性被忽略

    在 SailsJS 中使用 Mongo 时 我似乎无法获得唯一属性来实际检查 验证唯一值 我很容易就得到了相同的用户名 有什么想法吗 我检查了关于此的另一篇文章 但这与使用磁盘 内存数据库有关 航行 0 10 x 电子邮件受保护 cdn c
  • 如何在 twitter bootstrap css 的网格

    我正在尝试使用 Twitter 的 bootstrap CSS 框架 到目前为止只有网格布局 现在我只想对齐每个网格单元的内容 div 至底部 显然我根本不是 CSS 爱好者 这是 HTML div class container div
  • numpy as_strided 的反函数

    我有一个 4 张量x 6张量y计算如下 x np random randn 64 28 28 1 strided shape 64 26 26 3 3 1 y numpy lib stride tricks as strided x str
  • 如何对 IList 执行二分查找?

    简单的问题 给定一个IList
  • 如何在 django 模板中为标签创建动态 ID

    背景 我有一个动态表 就像我直到运行时才知道它的大小 元素 我试图用 JavaScript 函数填充文本区域 为此 我计划将文本区域的 id 以及我想要填充到 javascript 函数中的值一起传递 问题是我无法为每个文本输入字段创建动态
  • Clojure 中的 OAuth1

    我正在尝试使用 Clojure 与 API Context IO 集成 Context IO 使用 OAuth 1 它需要告知用户密钥和用户秘密凭证才能集成 我过去曾使用请求库 https github com request reques
  • 将 Big GeoJSON 转换为 topoJSON

    I have GeoJSON 文件 https github com jgoodall us maps blob master geojson zcta5 json大约有 1 4GB 并且由于文件大小 命令行工具无法工作 我使用 topoj
  • Jquery Datatable sum 条件页脚回调未显示正确的结果

    我正在尝试计算页脚回调中的列总和 但是 它没有给我正确的结果 USE 的总和应该是 12 但它显示的是 24 RAHUL 也显示错误的结果 如果该值重复 例如 6 是 USE 的两倍 并且 6 也出现在 Card 和 Other 中 在这种
  • 如何有效调试缩小后的JS文件?

    我调试时遇到问题缩小版 JS在生产服务器上 虽然你在测试时无法发现机器上的一些错误dev prod服务器 有机会将用户的一些前端错误和异常发送到特殊日志 当 JS 文件被缩小时 调试这段代码就变成了地狱 执行此类工作的最佳实践是什么 Bit
  • GROUP BY 子句中不允许使用 Sql Server XML 方法

    我只是发出一个组 在其中指定 xml 数据 然后出现错误GROUP BY 子句中不允许使用 XML 方法 这是我的sql SELECT HourSheetID MAX RowID 1 as RowID XMLData value Log E
  • 在 Java 桌面应用程序中使用 Firebase Admin(使用 Eclipse)

    我想在我的 java 应用程序中使用 firebase admin 在网站上它说我可以通过 gradle 或 maven 添加它 但我不想那样做 相反 我从 Maven 中央存储库网站下载了 jar 文件 并将其作为库添加到我的项目中 我添
  • 使用动态类型调用通用扩展方法[重复]

    这个问题在这里已经有答案了 我正在尝试执行一个返回类型 T 的对象的扩展方法 但我正在尝试基于标题 详细信息动态泛型类型使类型 T 动态化 这可能有点冗长 using System using System Collections Gene
  • CXF 和 JAX-WS 之间的区别

    我对网络服务还很陌生 我无法找到 JAX WS 和 CXF 之间的区别 根据我的理解 JAX WS是java提供的规范 CXF是实现 如果我错了 请纠正我 是的你是对的 JAX WS 是基于 SOAP 的 Web 服务的 Java 规范 C
  • iOS OpenGL ES - 模拟器和设备上的不同纹理行为

    我正在使用 OpenGL ES 加载纹理 下面是我的代码 该图形由 2 个相同大小的纹理 停止按钮和后面的蓝色发光组成 下面的第一张图是使用 xCode 中的 iPad 模拟器拍摄的 第二张图是在实际设备上拍摄的 第一个图形是我从 Illu
  • Svelte:以可重用的方式关联标签和输入

    我正在构建一个 Svelte 输入组件 该组件应该在同一页面上多次使用 div div