📜  Angular PrimeNG ProgressBar 组件

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

Angular PrimeNG ProgressBar 组件

Angular PrimeNG 是一个开源框架,具有丰富的原生 Angular UI 组件集,可用于出色的样式,并且该框架用于非常轻松地制作响应式网站。在本文中,我们将了解如何在 Angular PrimeNG 中使用 progressBar 组件。我们还将了解将在代码中使用的属性、样式以及它们的语法。

ProgressBar 组件:用于制作一个显示进程状态的栏。

特性:

  • value:指定进度的当前值。它接受数字数据类型,默认值为空。
  • showValue:它指定是显示还是隐藏进度条值。它是布尔数据类型,默认值为true。
  • 单位:它指定附加到值的单位符号。它是字符串数据类型,默认值为%。
  • mode:指定进度的模式,有效值为“determinate”和“indeterminate”。它是字符串数据类型,默认值是确定的。

造型:

  • p-progressbar:它是容器元素。
  • p-progressbar-determinate:它是确定进度条的容器元素。
  • p-progressbar-indeterminate:它是不确定进度条的容器元素。
  • p-progressbar-value:宽度根据值变化的元素。
  • p-progressbar-label:是显示当前值的标签元素。

创建 Angular 应用程序和模块安装:

第 1 步:使用以下命令创建一个 Angular 应用程序。

ng new appname

第 2 步:创建项目文件夹(即 appname)后,使用以下命令移动到该文件夹。

cd appname

第 3 步:在给定目录中安装 PrimeNG。

npm install primeng --save
npm install primeicons --save

项目结构:安装完成后如下图所示:

示例 1:这是说明如何使用 ProgressBar 组件的基本示例。

app.component.html

GeeksforGeeks

PrimeNG ProgressBar Component
Static Progress Bar
Indeterminate Progress Bar


app.component.ts
import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html'
})
export class AppComponent {}


app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } 
    from '@angular/platform-browser/animations';
  
import { AppComponent } from './app.component';
import { ProgressBarModule } from 'primeng/progressbar';
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    ProgressBarModule,
    FormsModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {}


app.component.html

GeeksforGeeks

PrimeNG ProgressBar Component

  
Dynamic (with status value)
     
Dynamic (without status value)
  


app.component.ts
import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html'
})
export class AppComponent {
  gfg1: number = 0;
  gfg2: number = 0;
  
  ngOnInit() {
    setInterval(() => {
      this.gfg1 = this.gfg1 + Math.floor(Math.random() * 10) + 1;
      if (this.gfg1 >= 100) {
        this.gfg1 = 100;
      }
    }, 1500),
      setInterval(() => {
        this.gfg2 = this.gfg2 + Math.floor(Math.random() * 10) + 3;
        if (this.gfg2 >= 100) {
          this.gfg2 = 100;
        }
      }, 1500);
  }
}


app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } 
    from '@angular/platform-browser/animations';
  
import { AppComponent } from './app.component';
import { ProgressBarModule } from 'primeng/progressbar';
  
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    ProgressBarModule,
    FormsModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {}


app.component.ts

import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html'
})
export class AppComponent {}

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } 
    from '@angular/platform-browser/animations';
  
import { AppComponent } from './app.component';
import { ProgressBarModule } from 'primeng/progressbar';
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    ProgressBarModule,
    FormsModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {}

输出:

示例 2:在此示例中,我们将制作动态进度条组件,该组件将随机更新,同时显示带有 & 不带进度状态值。

app.component.html

GeeksforGeeks

PrimeNG ProgressBar Component

  
Dynamic (with status value)
     
Dynamic (without status value)
  

app.component.ts

import { Component } from '@angular/core';
  
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html'
})
export class AppComponent {
  gfg1: number = 0;
  gfg2: number = 0;
  
  ngOnInit() {
    setInterval(() => {
      this.gfg1 = this.gfg1 + Math.floor(Math.random() * 10) + 1;
      if (this.gfg1 >= 100) {
        this.gfg1 = 100;
      }
    }, 1500),
      setInterval(() => {
        this.gfg2 = this.gfg2 + Math.floor(Math.random() * 10) + 3;
        if (this.gfg2 >= 100) {
          this.gfg2 = 100;
        }
      }, 1500);
  }
}

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { BrowserAnimationsModule } 
    from '@angular/platform-browser/animations';
  
import { AppComponent } from './app.component';
import { ProgressBarModule } from 'primeng/progressbar';
  
  
@NgModule({
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    ProgressBarModule,
    FormsModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {}

输出:

参考: https://primefaces.org/primeng/showcase/#/progressbar