Angular PrimeNG 快速拨号组件
Angular PrimeNG 是一个开源框架,具有丰富的原生 Angular UI 组件集,可用于出色的样式,并且该框架用于非常轻松地制作响应式网站。在本文中,我们将了解如何在 Angular PrimeNG 中使用 SpeedDial 组件。我们还将了解将在代码中使用的属性、事件和样式以及它们的语法。
SpeedDial 组件:它用于显示许多主要操作,这些操作可以在按下按钮时使用浮动按钮操作来完成。
特性:
- id:元素的唯一标识。它是字符串数据类型,默认值为空。
- model :它是用于定义操作项的 MenuModel 实例。它是对象数据类型,默认值为空。
- visible :它指定叠加层的可见性。它是布尔数据类型,默认值为false。
- className :元素的样式类。它是字符串数据类型,默认值为空。
- style :它是元素的内联样式。它是对象数据类型,默认值为空。
- direction :指定动作的打开方向。它是字符串数据类型,默认值为up。
- transitionDelay :每个动作项的过渡延迟步长,为数字数据类型,默认值为30。
- type :指定动作的开启类型。它是字符串数据类型,默认值为线性。
- radius : *circle 类型的半径,数字数据类型,默认值为 0。
- mask :指定是否在快速拨号后面显示掩码元素,为布尔数据类型,默认值为false。
- disabled :它指定组件是否被禁用。它是布尔数据类型,默认值为false。
- hideOnClickOutside :它指定在外部单击时是否关闭操作。它是布尔数据类型,默认值为true。
- buttonClassName :它是按钮元素的样式类。它是字符串数据类型,默认值为空。
- buttonStyle :它是按钮元素的内联样式。它是对象数据类型,默认值为空。
- buttonTemplate :它是按钮元素的模板。它接受任何类型的数据,默认值为空。
- maskClassName :它是掩码元素的样式类。它是字符串数据类型,默认值为空。
- maskStyle :它是掩码元素的内联样式。它是对象数据类型,默认值为空。
- showIcon :它是按钮元素的显示图标。它是字符串数据类型,默认值为 pi pi-plus。
- hideIcon :它是按钮元素的隐藏图标。它是字符串数据类型,默认值为空。
- rotateAnimation : 用于定义当 hideIcon 不存在时旋转 showIcon。它是布尔数据类型,默认值为true。
事件:
- onVisibleChange :当元素的可见性改变时触发的回调。
- onClick :当按钮元素被点击时触发的回调。
- onShow :这是一个在动作可见时触发的回调。
- onHide :这是一个回调,当操作被隐藏时触发。
造型:
- p-speeddial:它是容器元素。
- p-speeddial-button:快速拨号的按钮元素。
- p-speeddial-mask:快速拨号的掩码元素。
- p-speeddial-list:这是动作列表。
- p-speeddial-item :用于执行列表中的每个操作项。
创建 Angular 应用程序和模块安装:
第 1 步:使用以下命令创建一个 Angular 应用程序。
ng new appname
第 2 步:创建项目文件夹(即 appname)后,使用以下命令移动到该文件夹。
cd appname
第 3 步:在给定目录中安装 PrimeNG。
npm install primeng --save
npm install primeicons --save
项目结构:它将如下所示:
示例 1:这是说明如何使用 SpeedDial 组件的基本示例。
app.component.html
GeeksforGeeks
PrimeNG SpeedDial Component
app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouterModule } from "@angular/router";
import { BrowserAnimationsModule }
from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { ProgressSpinnerModule }
from "primeng/progressspinner";
import { RippleModule } from "primeng/ripple";
import { SpeedDialModule } from "primeng/speeddial";
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
ProgressSpinnerModule,
SpeedDialModule,
RippleModule,
RouterModule.forRoot([{ path: "",
component: AppComponent }]),
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
app.component.ts
import { Component, OnInit } from "@angular/core";
import { MenuItem, MessageService } from "primeng/api";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.scss"],
providers: [MessageService],
})
export class AppComponent {
gfg: MenuItem[];
constructor(private messageService: MessageService) {}
ngOnInit() {
this.gfg = [
{
icon: "pi pi-check",
},
];
}
}
app.component.html
app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouterModule } from "@angular/router";
import { BrowserAnimationsModule }
from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { ProgressSpinnerModule } from "primeng/progressspinner";
import { RippleModule } from "primeng/ripple";
import { SpeedDialModule } from "primeng/speeddial";
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
ProgressSpinnerModule,
SpeedDialModule,
RippleModule,
RouterModule.forRoot([{ path: "",
component: AppComponent }]),
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
app.component.ts
import { Component, OnInit } from "@angular/core";
import { MenuItem, MessageService } from "primeng/api";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.scss"],
providers: [MessageService],
})
export class AppComponent {
gfg: MenuItem[];
constructor(private messageService: MessageService) {}
ngOnInit() {
this.gfg = [
{
icon: "pi pi-pencil",
},
{
icon: "pi pi-refresh",
},
{
icon: "pi pi-trash",
},
{
icon: "pi pi-upload",
},
{
icon: "pi pi-external-link",
},
];
}
}
app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouterModule } from "@angular/router";
import { BrowserAnimationsModule }
from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { ProgressSpinnerModule }
from "primeng/progressspinner";
import { RippleModule } from "primeng/ripple";
import { SpeedDialModule } from "primeng/speeddial";
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
ProgressSpinnerModule,
SpeedDialModule,
RippleModule,
RouterModule.forRoot([{ path: "",
component: AppComponent }]),
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
app.component.ts
import { Component, OnInit } from "@angular/core";
import { MenuItem, MessageService } from "primeng/api";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.scss"],
providers: [MessageService],
})
export class AppComponent {
gfg: MenuItem[];
constructor(private messageService: MessageService) {}
ngOnInit() {
this.gfg = [
{
icon: "pi pi-check",
},
];
}
}
输出:
示例 2:在本示例中,我们将了解如何在 SpeedDial 组件中使用radius属性。
app.component.html
app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouterModule } from "@angular/router";
import { BrowserAnimationsModule }
from "@angular/platform-browser/animations";
import { AppComponent } from "./app.component";
import { ProgressSpinnerModule } from "primeng/progressspinner";
import { RippleModule } from "primeng/ripple";
import { SpeedDialModule } from "primeng/speeddial";
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
ProgressSpinnerModule,
SpeedDialModule,
RippleModule,
RouterModule.forRoot([{ path: "",
component: AppComponent }]),
],
declarations: [AppComponent],
bootstrap: [AppComponent],
})
export class AppModule {}
app.component.ts
import { Component, OnInit } from "@angular/core";
import { MenuItem, MessageService } from "primeng/api";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.scss"],
providers: [MessageService],
})
export class AppComponent {
gfg: MenuItem[];
constructor(private messageService: MessageService) {}
ngOnInit() {
this.gfg = [
{
icon: "pi pi-pencil",
},
{
icon: "pi pi-refresh",
},
{
icon: "pi pi-trash",
},
{
icon: "pi pi-upload",
},
{
icon: "pi pi-external-link",
},
];
}
}
输出:
参考: https://primefaces.org/primeng/showcase/#/speeddial