下拉菜单 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()

参数类型默认值数据流向描述
dataobject绑定属性
data.titlestring''outer => inner按钮文字
data.sourceobject[][]outer <=> inner数据源
data.source[].namestringouter => inner每项的内容
data.source[].disabledbooleanfalseouter => inner禁用此项
data.source[].dividerbooleanfalseouter => inner设置此项为分隔线
data.itemTemplatestringnullouter @=> inner单项模板
data.openbooleanfalseouter <=> inner当前为展开/收起状态
data.disabledbooleanfalseouter => inner是否禁用
data.visiblebooleantrueouter => inner是否显示
data.classstring''outer => inner补充class
serviceobjectouter @=> inner数据服务

Methods

dropdown.toggle(open)

展开/收起

参数类型默认值描述
openboolean展开/收起状态。如果无此参数,则在两种状态之间切换。
返回值类型描述
无返回值

dropdown.select(item)

选择某一项

参数类型默认值描述
itemobject选择项
返回值类型描述
无返回值

Inherited Methods

@deprecated dropdown.$updateSource()

从service中更新数据源

参数类型默认值描述
无参数
返回值类型描述
thisSourceComponent

Events

dropdown.$on('toggle')

展开/收起时触发

属性类型描述
senderobject事件发送对象
openobject展开/收起状态

dropdown.$on('select')

选择某一项时触发

属性类型描述
senderobject事件发送对象
selectedobject当前选择项