项目开发中常用的一些ionic组件比较有趣,今天简单的说一下Angula中ion-popover组件的使用
1,在/src/app/share/components/popover的路径下
使用指令创建组件:popover
生成
2,在src/app/share/components下的components.module.ts文件下加入组件
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { RatingStarComponent } from './rating-star/rating-star.component';
import { ElmSvgComponent } from './svg/svg';
import { LoginStateComponent } from './login-state/login-state.component';
import { PopoverComponent } from './popover/popover.component';//引入
const coms: any[] = [
RatingStarComponent,
ElmSvgComponent,
LoginStateComponent,
PopoverComponent引入
];
@NgModule({
imports: [
CommonModule,
FormsModule,
RouterModule,
IonicModule.forRoot(),
],
declarations: [
coms
],
exports: [
coms
],
entryComponents: [],
})
export class ComponentsModule { }
share.module.ts中常用配置
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ComponentsModule } from './components/components.module';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule.forRoot(),
],
declarations: [
],
exports: [
CommonModule,
FormsModule,
IonicModule,
ComponentsModule
],
entryComponents: [],
})
export class ShareModule {}
3.在要使用的页面中引入
1>
detailed-evaluation.module.ts中
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { DeliverCommentsPageRoutingModule } from './deliver-comments-routing.module';
import { DeliverCommentsPage } from './deliver-comments.page';
import { ShareModule } from '../../share/share.module';//引入组件模块
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
DeliverCommentsPageRoutingModule,
ShareModule,//使用组件模块,
],
declarations: [DeliverCommentsPage]
})
export class DeliverCommentsPageModule {}
2>detailed-evaluation.page.ts中引入PopoverController获取方法
import { PopoverComponent } from 'src/app/share/components/popover/popover.component';
import { ToastController, LoadingController, NavController,PopoverController } from '@ionic/angular';
//使用
async presentPopover(ev: any) {
const popover = await this.popoverController.create({
component: PopoverComponent,
event: ev,
translucent: true
});
return await popover.present();
}
3>页面中使用
<div class="-tell-rate">
<span (click)=" presentPopover($event)">
<p>这个产品很好用,下次还会再来</p>
</span>
</div>
3,由于组件封装度较高,修改样式必须使用深度选择器
所以,我们可以通过在:
popover.component.ts调整组件宽度等样式
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-popover',
templateUrl: './popover.component.html',
styleUrls: ['./popover.component.scss'],
})
export class PopoverComponent implements OnInit {
constructor() { }
ngOnInit() {
var s = document.querySelector('.popover-content');
s['style'].width = '710rem';
s['style'].background = '#999999';
var a = document.getElementsByClassName('.popover-arrow');
}
}
4,基本效果