下拉菜单 Dropdown
示例
基本形式
<dropdown source={source} />
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3'}
]
}
});
修改标题
<dropdown source={source} title="修改标题" />
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3'}
]
}
});
禁用某一项,禁用组件
<dropdown source={source} />
<dropdown source={source} disabled />
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3(禁用)', disabled: true}
]
}
});
分隔线
<dropdown source={source} />
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{divider: true},
{name: '选项3(禁用)', disabled: true}
]
}
});
按钮自定义
<dropdown source={source}>
<a class="u-btn u-btn-primary">Primary</a>
</dropdown>
<dropdown source={source}>
<a class="u-btn u-btn-success">Success</a>
</dropdown>
<dropdown source={source}>
<a class="u-btn u-btn-warning">Warning</a>
</dropdown>
<dropdown source={source}>
<a class="u-btn u-btn-error">Error</a>
</dropdown>
<dropdown source={source}>
<a>Link</a>
</dropdown>
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3'}
]
}
});
单项模板自定义
<dropdown source={source} itemTemplate={@(this.itemTemplate)} />
var component = new RGUI.Component({
template: template,
itemTemplate: RGUI._.multiline(function(){/*
<a href={item.url}>{item.name}</a>
*/}),
data: {
source: [
{name: 'Dropdown', url: 'dropdown.html'},
{name: 'Menu', url: 'menu.html'},
{name: 'Input2', url: 'input2.html'}
]
}
});
数据绑定
<dropdown source={source} open={open} /> 当前切换的状态:{open}
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3'}
]
}
});
事件
请打开浏览器的控制台查看结果。
<dropdown source={source}
on-toggle={console.log('on-toggle:', '$event.open:', $event.open)}
on-select={console.log('on-select:', '$event.selected:', $event.selected)} />
var component = new RGUI.Component({
template: template,
data: {
source: [
{name: '选项1'},
{name: '选项2'},
{name: '选项3'}
]
}
});
API
Class
Dropdown
继承自SourceComponent。
Options
new Dropdown()
参数 | 类型 | 默认值 | 数据流向 | 描述 |
---|---|---|---|---|
data | object | 绑定属性 | ||
data.title | string | '' | outer => inner | 按钮文字 |
data.source | object[] | [] | outer <=> inner | 数据源 |
data.source[].name | string | outer => inner | 每项的内容 | |
data.source[].disabled | boolean | false | outer => inner | 禁用此项 |
data.source[].divider | boolean | false | outer => inner | 设置此项为分隔线 |
data.itemTemplate | string | null | outer @=> inner | 单项模板 |
data.open | boolean | false | outer <=> inner | 当前为展开/收起状态 |
data.disabled | boolean | false | outer => inner | 是否禁用 |
data.visible | boolean | true | outer => inner | 是否显示 |
data.class | string | '' | outer => inner | 补充class |
service | object | outer @=> inner | 数据服务 |
Methods
dropdown.toggle(open)
展开/收起
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
open | boolean | 展开/收起状态。如果无此参数,则在两种状态之间切换。 | |
返回值 | 类型 | 描述 | |
无返回值 |
dropdown.select(item)
选择某一项
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
item | object | 选择项 | |
返回值 | 类型 | 描述 | |
无返回值 |
Inherited Methods
@deprecated dropdown.$updateSource()
从service中更新数据源
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
无参数 | |||
返回值 | 类型 | 描述 | |
this | SourceComponent |
Events
dropdown.$on('toggle')
展开/收起时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象 |
open | object | 展开/收起状态 |
dropdown.$on('select')
选择某一项时触发
属性 | 类型 | 描述 |
---|---|---|
sender | object | 事件发送对象 |
selected | object | 当前选择项 |