scoped A Picker is a dialog that displays a row of buttons and columns underneath. It appears on top of the app's content, and at the bottom of the viewport.
ion-picker can be used by writing the component directly in your template. This reduces the number of handlers you need to wire up in order to present the Picker.
The isOpen property on ion-picker allows developers to control the presentation state of the Picker from their application state. This means when isOpen is set to true the Picker will be presented, and when isOpen is set to false the Picker will be dismissed.
isOpen uses a one-way data binding, meaning it will not automatically be set to false when the Picker is dismissed. Developers should listen for the ionPickerDidDismiss or didDismiss event and set isOpen to false. The reason for this is it prevents the internals of ion-picker from being tightly coupled with the state of the application. With a one way data binding, the Picker only needs to concern itself with the boolean value that the reactive variable provides. With a two way data binding, the Picker needs to concern itself with both the boolean value as well as the existence of the reactive variable itself. This can lead to non-deterministic behaviors and make applications harder to debug.
The pickerController can be used in situations where more control is needed over when the Picker is presented and dismissed.
The columns property can be used to display a Picker with multiple columns of different options.
interface   PickerButton   {   text ? :   string ;   role ? :   string ;   cssClass ? :   string   |   string [ ] ;   handler ? :   ( value :   any )   =>   boolean   |   void ; } Copy 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 ; } Copy interface   PickerColumnOption   {   text ? :   string ;   value ? :   any ;   disabled ? :   boolean ;   duration ? :   number ;   transform ? :   string ;   selected ? :   boolean ; } Copy 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 ; } Copy Description If true, the picker will animate. Attribute animatedType booleanDefault true
Description If true, the picker will be dismissed when the backdrop is clicked. Attribute backdrop-dismissType booleanDefault true
Description Array of buttons to be displayed at the top of the picker. Attribute undefinedType PickerButton[]Default []
Description Array of columns to be displayed in the picker. Attribute undefinedType PickerColumn[]Default []
Description Additional classes to apply for custom CSS. If multiple classes are provided they should be separated by spaces. Attribute css-classType string ๏ฝ string[] ๏ฝ undefinedDefault undefined
Description Number of milliseconds to wait before dismissing the picker. Attribute durationType numberDefault 0
Description Animation to use when the picker is presented. Attribute undefinedType ((baseEl: any, opts?: any) => Animation) ๏ฝ undefinedDefault undefined
Description Additional attributes to pass to the picker. Attribute undefinedType undefined ๏ฝ { [key: string]: any; }Default undefined
Description 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. Attribute is-openType booleanDefault false
Description If true, the keyboard will be automatically dismissed when the overlay is presented. Attribute keyboard-closeType booleanDefault true
Description Animation to use when the picker is dismissed. Attribute undefinedType ((baseEl: any, opts?: any) => Animation) ๏ฝ undefinedDefault undefined
Description The mode determines which platform styles to use. Attribute modeType "ios" ๏ฝ "md"Default undefined
Description If true, a backdrop will be displayed behind the picker. Attribute show-backdropType booleanDefault true
Description An ID corresponding to the trigger element that causes the picker to open when clicked. Attribute triggerType string ๏ฝ undefinedDefault undefined
Name Description didDismissEmitted after the picker has dismissed. Shorthand for ionPickerDidDismiss. didPresentEmitted after the picker has presented. Shorthand for ionPickerWillDismiss. ionPickerDidDismissEmitted after the picker has dismissed. ionPickerDidPresentEmitted after the picker has presented. ionPickerWillDismissEmitted before the picker has dismissed. ionPickerWillPresentEmitted before the picker has presented. willDismissEmitted before the picker has dismissed. Shorthand for ionPickerWillDismiss. willPresentEmitted before the picker has presented. Shorthand for ionPickerWillPresent. 
Description Dismiss the picker overlay after it has been presented. Signature dismiss(data?: any, role?: string) => Promise<boolean>
Description Get the column that matches the specified name. Signature getColumn(name: string) => Promise<PickerColumn ๏ฝ undefined>
Description Returns a promise that resolves when the picker did dismiss. Signature onDidDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description Returns a promise that resolves when the picker will dismiss. Signature onWillDismiss<T = any>() => Promise<OverlayEventDetail<T>>
Description Present the picker overlay after it has been created. Signature present() => Promise<void>
No CSS shadow parts available for this component.
Name Description --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 
No slots available for this component.