跳到主要内容
版本:v8

ion-picker-legacy

scoped
弃用说明

ion-picker-legacy 已弃用,将在下一个主要版本中移除。请尽快迁移到 ion-picker。

Picker 是一个对话框,显示一行按钮及其下方的列。它显示在应用内容上方、视口底部。

内联 Picker(推荐)​

ion-picker-legacy 可以通过直接在模板中编写组件来使用。这减少了呈现 Picker 时需要连接的处理程序数量。

控制台
控制台消息将在上方示例中调用 console.log 时显示在此处。

使用 isOpen​

ion-picker-legacy 上的 isOpen 属性允许开发者从应用状态控制 Picker 的呈现状态。这意味着当 isOpen 设置为 true 时,Picker 将呈现;当 isOpen 设置为 false 时,Picker 将关闭。

isOpen 使用单向数据绑定,这意味着 Picker 关闭时它不会自动设置为 false。开发者应监听 ionPickerDidDismiss 或 didDismiss 事件并将 isOpen 设置为 false。这样做的原因是防止 ion-picker 的内部逻辑与应用状态紧密耦合。使用单向数据绑定时,Picker 只需关注响应式变量提供的布尔值。而使用双向数据绑定时,Picker 需要同时关注布尔值和响应式变量本身的存在性。这可能导致不确定的行为,并使应用更难调试。

控制台
控制台消息将在上方示例中调用 console.log 时显示在此处。

控制器 Picker​

在需要对 Picker 的呈现和关闭进行更多控制的情况下,可以使用 pickerController。

控制台
控制台消息将在上方示例中调用 console.log 时显示在此处。

多列​

columns 属性可用于显示具有多个不同选项列的 Picker。

控制台
控制台消息将在上方示例中调用 console.log 时显示在此处。

接口​

PickerButton​

interface PickerButton {
text?: string;
role?: string;
cssClass?: string | string[];
handler?: (value: any) => boolean | void;
}

PickerColumn​

interface PickerColumn {
name: string;
align?: string;
/**
* 更改此值可以设置选择器列的初始值。
*/
selectedIndex?: number;
prevSelected?: number;
prefix?: string;
suffix?: string;
options: PickerColumnOption[];
cssClass?: string | string[];
columnWidth?: string;
prefixWidth?: string;
suffixWidth?: string;
optionsWidth?: string;
}

PickerColumnOption​

interface PickerColumnOption {
text?: string;
value?: any;
disabled?: boolean;
duration?: number;
transform?: string;
selected?: boolean;
/**
* 要分配给选择器列选项的 aria-label 的可选文本。
*/
ariaLabel?: string;
}

PickerOptions​

interface PickerOptions {
columns: PickerColumn[];
buttons?: PickerButton[];
cssClass?: string | string[];
showBackdrop?: boolean;
backdropDismiss?: boolean;
animated?: boolean;

mode?: Mode;
keyboardClose?: boolean;
id?: string;
htmlAttributes?: { [key: string]: any };

enterAnimation?: AnimationBuilder;
leaveAnimation?: AnimationBuilder;
}

属性​

animated​

说明If true, the picker will animate.
属性animated
类型boolean
默认值true

backdropDismiss​

说明If true, the picker will be dismissed when the backdrop is clicked.
属性backdrop-dismiss
类型boolean
默认值true

buttons​

说明Array of buttons to be displayed at the top of the picker.
属性undefined
类型PickerButton[]
默认值[]

columns​

说明Array of columns to be displayed in the picker.
属性undefined
类型PickerColumn[]
默认值[]

cssClass​

说明Additional classes to apply for custom CSS. If multiple classes are provided they should be separated by spaces.
属性css-class
类型string | string[] | undefined
默认值undefined

duration​

说明Number of milliseconds to wait before dismissing the picker.
属性duration
类型number
默认值0

enterAnimation​

说明Animation to use when the picker is presented.
属性undefined
类型((baseEl: any, opts?: any) => Animation) | undefined
默认值undefined

htmlAttributes​

说明Additional attributes to pass to the picker.
属性undefined
类型undefined | { [key: string]: any; }
默认值undefined

isOpen​

说明If true, the picker will open. If false, the picker will close. Use this if you need finer grained control over presentation, otherwise just use the pickerController or the trigger property. Note: isOpen will not automatically be set back to false when the picker dismisses. You will need to do that in your code.
属性is-open
类型boolean
默认值false

keyboardClose​

说明If true, the keyboard will be automatically dismissed when the overlay is presented.
属性keyboard-close
类型boolean
默认值true

leaveAnimation​

说明Animation to use when the picker is dismissed.
属性undefined
类型((baseEl: any, opts?: any) => Animation) | undefined
默认值undefined

mode​

说明The mode determines which platform styles to use.

这是一个虚拟属性,在初始化时设置一次,之后更改其值不会更新组件。
属性mode
类型"ios" | "md"
默认值undefined

showBackdrop​

说明If true, a backdrop will be displayed behind the picker.
属性show-backdrop
类型boolean
默认值true

trigger​

说明An ID corresponding to the trigger element that causes the picker to open when clicked.
属性trigger
类型string | undefined
默认值undefined

事件​

Name说明冒泡
didDismissEmitted after the picker has dismissed. Shorthand for ionPickerDidDismiss.true
didPresentEmitted after the picker has presented. Shorthand for ionPickerWillDismiss.true
ionPickerDidDismissEmitted after the picker has dismissed.true
ionPickerDidPresentEmitted after the picker has presented.true
ionPickerWillDismissEmitted before the picker has dismissed.true
ionPickerWillPresentEmitted before the picker has presented.true
willDismissEmitted before the picker has dismissed. Shorthand for ionPickerWillDismiss.true
willPresentEmitted before the picker has presented. Shorthand for ionPickerWillPresent.true

方法​

dismiss​

说明Dismiss the picker overlay after it has been presented.
签名dismiss(data?: any, role?: string) => Promise<boolean>
参数data: Any data to emit in the dismiss events.
role: The role of the element that is dismissing the picker. This can be useful in a button handler for determining which button was clicked to dismiss the picker. Some examples include: ``"cancel", "destructive", "selected", and "backdrop".

getColumn​

说明Get the column that matches the specified name.
签名getColumn(name: string) => Promise<PickerColumn | undefined>
参数name: The name of the column.

onDidDismiss​

说明Returns a promise that resolves when the picker did dismiss.
签名onDidDismiss<T = any>() => Promise<OverlayEventDetail<T>>

onWillDismiss​

说明Returns a promise that resolves when the picker will dismiss.
签名onWillDismiss<T = any>() => Promise<OverlayEventDetail<T>>

present​

说明Present the picker overlay after it has been created.
签名present() => Promise<void>

CSS Shadow Parts​

该组件没有可用的 CSS 阴影部分。

CSS 自定义属性​

Name说明
--backdrop-opacityOpacity of the backdrop
--backgroundBackground of the picker
--background-rgbBackground of the picker in rgb format
--border-colorBorder color of the picker
--border-radiusBorder radius of the picker
--border-styleBorder style of the picker
--border-widthBorder width of the picker
--heightHeight of the picker
--max-heightMaximum height of the picker
--max-widthMaximum width of the picker
--min-heightMinimum height of the picker
--min-widthMinimum width of the picker
--widthWidth of the picker

插槽​

该组件没有可用的插槽。