📜  ionic Popover(1)

📅  最后修改于: 2023-12-03 15:31:26.011000             🧑  作者: Mango

Ionic Popover

Ionic Popover 是一个强大的 UI 组件,可以快速地创建弹出窗口,它可以显示一些额外的信息或动作选项。在一个实际应用中,它非常的有用,因为它可以提供一个交互的界面,并且可以在浏览器/桌面应用程序和移动应用程序中使用。

安装

安装 Popover 需要先安装 Ionic 框架。安装 Ionic 的步骤可以在官方文档中找到。

在 Ionic 中,安装和使用 Popover 就像使用其他 Ionic 组件一样容易。你可以使用 Angualar 命令行来安装 Popover:

ng add @ionic/angular

在你的模块(app.module.ts)中引入 IonicModule

import { IonicModule } from '@ionic/angular';

@NgModule({
  imports: [
    IonicModule.forRoot()
  ]
})
export class AppModule {}
使用

Popover 组件需要几个参数:组件、事件、选项。让我们来逐个了解这些参数。

  1. 组件:

Popover 组件需要指定用于呈现的组件。你需要将该组件放在模块中,并将其注册为模块的一个指令。例如:

import { Component } from '@angular/core';

@Component({
  template: `
    <ion-list>
      <ion-list-header>
        <ion-label>
         Languages
        </ion-label>
      </ion-list-header>
      <ion-item>
        Java
      </ion-item>
      <ion-item>
        Python
      </ion-item>
      <ion-item>
        jаvascript
      </ion-item>
    </ion-list>
  `
})
export class LanguageComponent {}
  1. 事件:

Popover 组件需要事件来触发,例如按钮点击事件。Ionic 提供了多个组件来展示 Popover:

  • ion-item
  • ion-button
  • ion-icon-button
  • ion-fab

以下示例将展示如何在 ion-button 组件上设置 Popover:

<ion-header>
  <ion-toolbar>
    <ion-title>
      Ionic Popover Example
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content>
  <ion-button (click)="showPopover($event)">
    Show Popover
  </ion-button>
</ion-content>
  1. 选项:

你可以使用 Popover 控制器来指定初始选项,例如弹出位置和尺寸。以下示例将展示如何设置弹出位置:

import { Component } from '@angular/core';
import { PopoverController } from '@ionic/angular';
import { LanguageComponent } from './language.component';

@Component({
  template: `
    <ion-content>
      <ion-list>
        <ion-item (click)="closePopover('java')">
          Java
        </ion-item>
        <ion-item (click)="closePopover('python')">
          Python
        </ion-item>
        <ion-item (click)="closePopover('javascript')">
          jаvascript
        </ion-item>
      </ion-list>
    </ion-content>
  `
})
export class PopoverComponent {
  constructor(private popoverCtrl: PopoverController) {}

  async closePopover(language: string) {
    await this.popoverCtrl.dismiss(language);
  }
}

使用上述示例,我们可以在按钮上展示 Popover:

import { Component } from '@angular/core';
import { PopoverController } from '@ionic/angular';
import { LanguageComponent } from './language.component';

@Component({
  template: `
    <ion-content>
      <ion-list>
        <ion-item (click)="closePopover('java')">
          Java
        </ion-item>
        <ion-item (click)="closePopover('python')">
          Python
        </ion-item>
        <ion-item (click)="closePopover('javascript')">
          jаvascript
        </ion-item>
      </ion-list>
    </ion-content>
  `
})
export class PopoverComponent {
  constructor(private popoverCtrl: PopoverController) {}

  async closePopover(language: string) {
    await this.popoverCtrl.dismiss(language);
  }
}

@Component({
  template: `
    <ion-header>
      <ion-toolbar>
        <ion-title>
          Ionic Popover Example
        </ion-title>
      </ion-toolbar>
    </ion-header>

    <ion-content>
      <ion-button (click)="showPopover($event)">
        Show Popover
      </ion-button>
    </ion-content>
  `
})
export class HomePage {
  constructor(private popoverCtrl: PopoverController) {}

  async showPopover(ev: any) {
    const popover = await this.popoverCtrl.create({
      component: LanguageComponent,
      event: ev,
      translucent: true,
      cssClass: 'custom-popover'
    });

    await popover.present();

    const data = await popover.onWillDismiss();
    console.log(data);
  }
}
总结

Ionic Popover 是一个强大的 UI 组件,可以快速创建弹出窗口,在实际应用中非常有用。使用 PopoverControllerPopover 组件,我们可以轻松设置 Popover 的组件、事件和选项。