选择扩展 SelectField
示例
基本形式
默认会选择第一项。
<selectField>
<item>选项1</item>
<item>选项2</item>
<item>选项3</item>
</selectField>
<selectField>
<item>请选择</item>
<item>选项1</item>
<item>选项2</item>
<item>选项3</item>
</selectField>
value和selected
<selectField value=2>
<item>请选择</item>
<item value=1>选项1</item>
<item value=2>选项2</item>
<item value=3>选项3</item>
</selectField>
<selectField>
<item>请选择</item>
<item value=1>选项1</item>
<item value=2>选项2</item>
<item value=3 selected>选项3</item>
</selectField>
只读,禁用,禁用某一项
<selectField readonly>
<item>请选择</item>
<item>选项1</item>
<item selected>选项2</item>
<item>选项3</item>
</selectField>
<selectField disabled>
<item>请选择</item>
<item>选项1</item>
<item selected>选项2</item>
<item>选项3</item>
</selectField>
<selectField>
<item>请选择</item>
<item>选项1</item>
<item>选项2</item>
<item disabled>选项3(禁用)</item>
</selectField>
分隔线
<selectField>
<item>选项1</item>
<item>选项2</item>
<item divider />
<item disabled>选项3(禁用)</item>
</selectField>
自定义
<selectField>
{#list list as item}
<item value={item}>
<span class="title">{item.language}</span>
<span class="hits f-fr">{item.ratings}%</span>
</item>
{/list}
</selectField>
var component = new RGUI.Component({
template: template,
data: {
list: [
{language: 'Java', ratings: 20.9},
{language: 'C', ratings: 13.2},
{language: 'C++', ratings: 6.7},
{language: 'Python', ratings: 3.8},
{language: 'JavaScript', ratings: 2.3}
]
}
});
展开方向
具体请参见Overlay的展开方向。
<selectField direction="bottom-left">
<item>bottom-left</item>
<item>选项1</item>
<item>选项2</item>
<item>选项3</item>
</selectField>
<selectField direction="top-left">
<item>top-left</item>
<item>选项1</item>
<item>选项2</item>
<item>选项3</item>
</selectField>
数据绑定
<selectField value={value}>
<item value=1>选项1</item>
<item value=2 selected>选项2</item>
<item value=3>选项3</item>
</selectField>
<span>当前选择值:{value}</span>
<p></p>
<a class="u-btn u-btn-info" on-click={value = '1'}>选项第一项</a>
<a class="u-btn u-btn-info" on-click={value = '3'}>选项最后一项</a>
事件
请打开浏览器的控制台查看结果。
<selectField value={value}
on-toggle={console.log('on-toggle:', '$event.open:', $event.open)}
on-select={console.log('on-select:', '$event.value:', $event.value)}
on-change={console.log('on-change:', '$event.value:', $event.value)}>
<item value=1>选项1</item>
<item value=2>选项2</item>
<item value=3 selected>选项3</item>
</selectField>
API
Class
SelectField
继承自。
Options
new SelectField()
参数 | 类型 | 默认值 | 数据流向 | 描述 |
---|---|---|---|---|
data | Object | 绑定属性 | ||
data.value | var | outside <=> inside | 当前的选择值 | |
data.open | boolean | false | outside <=> inside | 当前为展开/收起状态 |
data.direction | string | 'bottom-left' | outside => inside | 展开方向 |
data.readonly | boolean | false | outside => inside | 是否只读 |
data.disabled | boolean | false | outside => inside | 是否禁用 |
data.visible | boolean | true | outside => inside | 是否显示 |
data.class | string | '' | outside => inside | 补充class |
Methods
selectField.select(item)
选择某一项
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
item | Item | 选择项 | |
返回值 | 类型 | 描述 | |
无返回值 |
Events
selectField.$on('change')
选择值改变时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象 |
selected | Item | 改变后的选择项 |
value | var | 改变后的选择值 |
selectField.$on('select')
选择某一项时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象 |
selected | Item | 当前选择项 |
value | var | 当前选择值 |
selectField.$on('toggle')
展开/收起时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象 |
open | boolean | 展开/收起状态 |
direction | string | 展开方向 |