Ionic4的官方文檔中關於ion-picker組件沒有給出相應的示例代碼,但是其右上角效果展示的地方下邊有一個github的示例代碼連接,這個代碼不是標准的ionic項目結構,但使用原理是一樣的,這里我修改成ionic項目的寫法:
HTML:
<ion-button expand="block" (click)="openPicker()">點擊</ion-button>
JavaScript:
import { Component, OnInit } from '@angular/core'; import { PickerController } from '@ionic/angular'; @Component({ selector: 'app-edit', templateUrl: './edit.page.html', styleUrls: ['./edit.page.scss'], }) export class EditPage implements OnInit { constructor(private pickerController: PickerController) { } ngOnInit() { } public async openPicker() { const picker = await this.pickerController.create({ columns: this.getColumns(), buttons: [ { text: '取消', role: 'cancel' }, { text: '確定', handler: (value) => { console.log(`${value['col-0'].text}`); } } ] }); await picker.present(); } private getColumns() { // ion-pick 有個問題,create方法接收的參數中columns 不能直接給對象字面量,必須每次調用create時動態創建一個新對象,即時將這個對象保存為組件對象的屬性xxx,這里通過return this.xxx,這樣的方式也不行,會導致第二次打開時樣式不正常。 return [ { name: 'col-0', options: [ { text: "選項1", value: 0 }, { text: "選項2", value: 1 }, { text: "選項3", value: 2 } ] } ]; } }