# Cube-Radio-Group
# 介绍
单选框组,用来控制多个单选框状态,以及数据透传,可设置单选框组内容,样式等。
# 示例
# 基础用法
通过wx:model
双向绑定选中的单选框的值,options
是个数组,每个元素表示等同于单选框的option
。
<template>
<view class="radio-group-demo">
<view class="cube-radio-group-example">
<cube-radio-group
options="{{ options }}"
wx:model="{{ checkedValue }}"
wx:model-prop="value"
></cube-radio-group>
</view>
<view bindtap="test">click me</view>
<view class="view-desc">selected value: {{ checkedValue }}</view>
</view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
options: [
{
value: 'Option1',
text: 'Option1'
},
{
value: 'Option2',
text: 'Option2'
}
],
checkedValue: 'Option2'
},
methods: {
test() {
this.checkedValue = 'Option1'
}
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 控制行数
使用colNum
属性控制一行显示个数。
<template>
<view class="radio-group-column-num-demo">
<view class="cube-radio-group-example">
<cube-radio-group
options="{{ options }}"
colNum="{{ 3 }}"
wx:model="{{ checkedValue }}"
wx:model-prop="value"
></cube-radio-group>
</view>
<view class="view-desc">selected value: {{ checkedValue }}</view>
</view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
options: [
{
value: 1,
text: '1'
},
{
value: 2,
text: '2'
},
{
value: 3,
text: '3',
disabled: true
},
{
value: 4,
text: '4'
},
{
value: 5,
text: '5'
},
{
value: 6,
text: '6'
},
{
value: 7,
text: '7'
},
{
value: 8,
text: '8'
}
],
checkedValue: ''
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 禁用设置
使用disabled
属性禁用单选框组。
<template>
<view class="radio-group-disabled-demo">
<view class="cube-radio-group-example">
<cube-radio-group
options="{{ options }}"
wx:model="{{ checkedValue }}"
wx:model-prop="value"
disabled="{{true}}"
></cube-radio-group>
</view>
<view class="view-desc">selected value: {{ checkedValue }}</view>
</view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
options: [
{
value: 'Option1',
text: 'Option1',
position: 'right'
},
{
value: 'Option2',
text: 'Option2',
position: 'right'
},
{
value: 'Option3',
text: 'Option3',
disabled: true,
position: 'right'
}
],
checkedValue: ''
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 单行布局
使用inline
将布局改为单行布局。
<template>
<view class="radio-group-inline-demo">
<view class="cube-radio-group-example">
<cube-radio-group
options="{{ options }}"
inline="{{ true }}"
wx:model="{{ checkedValue }}"
wx:model-prop="value"
></cube-radio-group>
</view>
<view class="view-desc">selected value: {{ checkedValue }}</view>
</view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data: {
options: [
{
value: 'Option1',
text: 'Option1'
},
{
value: 'Option2',
text: 'Option2'
},
{
value: 'Option3',
text: 'Option3'
}
],
checkedValue: ''
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 使用插槽
除了使用内置的 radio 组件,您还可以使用插槽来自定义 radio。
<template>
<view class="radio-group-slot-demo">
<view class="cube-radio-group-example">
<cube-radio-group>
<cube-radio
wx:for="{{ options }}"
wx:for-index="index"
wx:for-item="option"
wx:key="index"
option="{{ option }}"
wx:model="{{ checkedValue }}"
wx:model-prop="value"
></cube-radio>
</cube-radio-group>
</view>
<view class="view-desc">selected value: {{ checkedValue }}</view>
</view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
options: {
styleIsolation: 'shared'
},
data () {
return {
options: [
{
value: 'Option1',
text: 'Option1'
},
{
value: 'Option2',
text: 'Option2'
}
],
checkedValue: 'Option1'
}
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
themeType | 用于生成最外层类名 如原类名为 cube-component,添加 themeType = demo 后,类名变为 cube-component cube-component-demo | String | - | - |
option | 配置项 | Object | Option | Option |
value | 双向绑定属性值 | String | String/Number | - |
options | 选项数据 | Array | - | ExtendOption[] |
inline | 是否行内展示 | Boolean | - | false |
colNum | 控制每行展示的个数 | Number | - | 1 |
# TsType
Name | Type |
---|---|
Option |
|
ExtendOption |
|
# Events
事件名 | 说明 | 参数 |
---|---|---|
input | 绑定值变化时触发 | 事件对象 e,包含选中的单选框 value 值 |
# Slots
插槽名 | 说明 |
---|---|
— (默认插槽) | 自定义使用 radio |