📜  Angular PrimeNG 快速拨号组件

📅  最后修改于: 2022-05-13 01:56:23.628000             🧑  作者: Mango

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