UNPKG

ionic-framework

Version:

An advanced HTML5 mobile app framework built on Angular2

191 lines (190 loc) 5.27 kB
import { ElementRef, Renderer, EventEmitter } from 'angular2/core'; import { Form } from '../../util/form'; import { Item } from '../item/item'; import { NavController } from '../nav/nav-controller'; /** * @name Select * @description * The `ion-select` component is similar to an HTML `<select>` element, however, * Ionic's select component makes it easier for users to sort through and select * the preferred option or options. When users tap the select component, a * dialog will appear with all of the options in a large, easy to select list * for users. * * Under-the-hood the `ion-select` actually uses the * {@link ../../alert/Alert Alert API} to open up the overlay of options * which the user is presented with. Select can take numerous child * `ion-option` components. If `ion-option` is not given a `value` attribute * then it will use its text as the value. * * ### Single Value: Radio Buttons * * The standard `ion-select` component allows the user to select only one * option. When selecting only one option the alert overlay presents users with * a radio button styled list of options. The `ion-select` component's value * receives the value of the selected option's value. * * ```html * <ion-item> * <ion-label>Gender</ion-label> * <ion-select [(ngModel)]="gender"> * <ion-option value="f" checked="true">Female</ion-option> * <ion-option value="m">Male</ion-option> * </ion-select> * </ion-item> * ``` * * ### Multiple Value: Checkboxes * * By adding the `multiple="true"` attribute to `ion-select`, users are able * to select multiple options. When multiple options can be selected, the alert * overlay presents users with a checkbox styled list of options. The * `ion-select multiple="true"` component's value receives an array of all the * selected option values. In the example below, because each option is not given * a `value`, then it'll use its text as the value instead. * * ```html * <ion-item> * <ion-label>Toppings</ion-label> * <ion-select [(ngModel)]="toppings" multiple="true"> * <ion-option>Bacon</ion-option> * <ion-option>Black Olives</ion-option> * <ion-option>Extra Cheese</ion-option> * <ion-option>Mushrooms</ion-option> * <ion-option>Pepperoni</ion-option> * <ion-option>Sausage</ion-option> * </ion-select> * <ion-item> * ``` * * ### Alert Buttons * By default, the two buttons read `Cancel` and `OK`. The each button's text * can be customized using the `cancelText` and `okText` attributes: * * ```html * <ion-select okText="Okay" cancelText="Dismiss"> * ... * </ion-select> * ``` * * ### Alert Options * * Remember how `ion-select` is really just a wrapper to `Alert`? By using * the `alertOptions` property you can pass custom options to the alert * overlay. This would be useful if there is a custom alert title, * subtitle or message. {@link ../../alert/Alert Alert API} * * ```html * <ion-select [alertOptions]="alertOptions"> * ... * </ion-select> * ``` * * ```ts * this.alertOptions = { * title: 'Pizza Toppings', * subTitle: 'Select your toppings' * }; * ``` * * @demo /docs/v2/demos/select/ */ export declare class Select { private _form; private _elementRef; private _renderer; private _item; private _nav; private _disabled; private _labelId; private _multi; private _options; private _values; private _texts; private _text; private _fn; /** * @private */ id: string; /** * @private * @input {string} The text of the cancel button. Defatuls to `Cancel` */ cancelText: string; /** * @private * @input {string} The text of the ok button. Defatuls to `OK` */ okText: string; /** * @private * @input {any} Any addition options that an alert can take. Title, Subtitle, etc. */ alertOptions: any; /** * @private */ checked: any; /** * @output {any} Any expression you want to evaluate when the selection has changed */ change: EventEmitter<any>; /** * @output {any} Any expression you want to evaluate when the selection was cancelled */ cancel: EventEmitter<any>; constructor(_form: Form, _elementRef: ElementRef, _renderer: Renderer, _item: Item, _nav: NavController); /** * @private */ private _click(ev); /** * @input {boolean} Whether or not the select component can accept multipl selections */ multiple: any; /** * @private */ text: string[] | string; /** * @private */ private options; /** * @private */ private _updOpts(); /** * @input {boolean} Whether or not the select component is disabled or not */ disabled: any; /** * @private */ writeValue(val: any): void; /** * @private */ ngAfterContentInit(): void; /** * @private */ registerOnChange(fn: Function): void; /** * @private */ registerOnTouched(fn: any): void; /** * @private */ onChange(_: any): void; /** * @private */ onTouched(): void; /** * @private */ ngOnDestroy(): void; }