Skip to content

AbpToggle ​

AbpToggle 用于布尔选项或单选组。

复选框、开关与单选 ​

vue
<template>
  <div class="d-flex flex-column gap-3">
    <AbpToggle v-model="enabled" variant="switch" label="Allow borrowing" />
    <AbpToggle v-model="accepted" label="Accept the terms" />
    <AbpToggle v-model="delivery" variant="radio" label="Delivery" :options="options" />
  </div>
  <output>Borrowing: {{ enabled }}; accepted: {{ accepted }}; delivery: {{ delivery }}</output>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import { AbpToggle, type AbpOption } from '@lsw-abpvue/theme-shared';
const enabled = ref(true);
const accepted = ref(false);
const delivery = ref('pickup');
const options: AbpOption[] = [
  { value: 'pickup', label: 'Pick up' },
  { value: 'post', label: 'Post' },
];
</script>

复选框和开关绑定布尔值,单选组绑定某个选项值。标签和选项标签是已本地化文字;需要随语言变化时,由本地化服务配合 computed 生成。

选择控件 ​

接受条款、选择记录适合复选框,启用设置适合开关,少量互斥选项适合保持可见的单选组。较长列表可使用选择器。

indeterminate 表示复选框的混合显示状态,例如部分行被选中,不是第三种可保存的布尔值。实际选择由页面保存,根据选择结果计算混合状态。

表单与可访问性 ​

提供 label 或 aria-label,尤其是表格里的控件。保存时绑定 disabled,有验证消息时绑定 invalid。控件发出 update:modelValue,不会自动保存设置。

必须勾选同意时,仅使用 Validators.required() 不够,因为 false 也是已定义的值。增加要求 true 的自定义验证器,并在后端执行同一规则。参见验证。

属性、事件与插槽 ​

源码

类型来自公开契约,默认表达式来自当前实现。短横线表示没有显式默认值;省略的可选布尔属性通常为 false。

Props ​

名称类型必填默认值
modelValueboolean | AbpOptionValue | undefined否—
variant'checkbox' | 'switch' | 'radio' | undefined否'checkbox'
labelstring | undefined否—
optionsreadonly AbpOption[] | undefined否—
disabledboolean | undefined否—
readonlyboolean | undefined否—
invalidboolean | undefined否—
indeterminateboolean | undefined否—
idstring | undefined否—
namestring | undefined否—
ariaDescribedbystring | undefined否—
ariaLabelstring | undefined否—

Events ​

名称参数
update:modelValue[value: boolean | AbpOptionValue]

Slots ​

没有命名插槽。

非官方社区项目,采用 MIT 许可证,与 Volosoft 无关。