序章

PrimeFacesのPrimeNGは、代替UIコンポーネントライブラリです。 データ表示、フォーム入力、メニュー、チャート、オーバーレイなどの事前に作成されたテーマとUIコンポーネントの選択を提供します。

この記事では、Angular 4+プロジェクトでPrimeNGをセットアップし、いくつかの主要コンポーネントについて説明します。

前提条件

この記事をフォローしたい場合は、次のものが必要になります。

このチュートリアルは、ノードv16.6.1、npm v7.20.3、@angular/core v12.2.0、primeng v12.0.1、およびprimeiconsv4で検証されました。 1.0。

プロジェクトの設定

@ angle / cli を使用して、新しいAngularプロジェクトを作成できます。

ターミナルウィンドウで、次のコマンドを使用します。

  1. ng new AngularPrimeNGExample --style=css --routing=false --skip-tests

これにより、スタイルが「CSS」(「Sass」、「Less」、「Stylus」ではなく)に設定され、ルーティングがなく、テストがスキップされる新しいAngularプロジェクトが構成されます。

新しく作成されたプロジェクトディレクトリに移動します。

  1. cd AngularPrimeNGExample

開始するには、必要なパッケージprimengおよびprimeiconsをプロジェクトにインストールします。

  1. npm install primeng@12.0.1 primeicons@4.1.0

この時点で、primengprimeiconsを使用した新しいAngularプロジェクトがあります。

PrimeNGスタイルの追加

次に、AngularCLIによってロードされるスタイルの一部として必要なCSSファイルを追加します。

angle.json(部分的)
...
"styles": [
  "styles.css",
  "node_modules/font-awesome/css/font-awesome.min.css",
  "node_modules/primeng/resources/primeng.min.css",
  "node_modules/primeng/resources/themes/saga-blue/theme.css"
],
...

**注:angular.json構成ファイルに追加した後、ローカルサーバーを再起動する必要があります。

ここではsaga-blueテーマを使用していますが、novarheafluent-lightなどの使用可能なテーマから選択できます。

PrimeNGコンポーネントのインポート

次に、必要なUIコンポーネントを含めるようにアプリモジュールを設定しましょう。

src / app / app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from '@angular/forms';

import { AccordionModule } from 'primeng/accordion';
import { PanelModule } from 'primeng/panel';
import { ButtonModule } from 'primeng/button';
import { RadioButtonModule } from 'primeng/radioButton';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    FormsModule,
    AccordionModule,
    PanelModule,
    ButtonModule,
    RadioButtonModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

AngularのBrowserAnimationsModuleFormsModuleもインポートしたことに注目してください。 アニメーションモジュールはPrimeNGのコンポーネントに必要であり、フォームモジュールはラジオボタンコンポーネントなどのフォーム入力コンポーネントを使用するために必要になります。

この時点で、AccordionModulePanelModuleButtonModule、およびRadioButtonModuleをサポートする新しいAngularプロジェクトがあります。

PrimeNGコンポーネントを使用したアプリの構築

PrimeNGのaccordionpanelradio button、およびbuttonコンポーネントを使用する例を次に示します。

pizzaSelectionを追加します:

src / app / app.component.ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  pizzaSelection = ''
}

次に、p-accordionp-accordionTabp-radioButtonp-panel、およびpButtonを追加します。

src / app / app.component.html
<p-accordion>
  <p-accordionTab header="Salads">
    Salads...
  </p-accordionTab>
  <p-accordionTab header="Pasta">
    Pasta...
  </p-accordionTab>
  <p-accordionTab header="Pizza" [selected]="true">
    <div>
      <p-radioButton
        label="Double cheese"
        name="pizza"
        value="double-cheese"
        [(ngModel)]="pizzaSelection">
      </p-radioButton>
    </div>

    <div>
      <p-radioButton
        label="Anchovy"
        name="pizza"
        value="anchovy"
        [(ngModel)]="pizzaSelection">
      </p-radioButton>
    </div>

    <div>
      <p-radioButton
        label="Meatlover's"
        name="pizza"
        value="meat-lover"
        [(ngModel)]="pizzaSelection">
      </p-radioButton>
    </div>
  </p-accordionTab>
</p-accordion>

<p-panel header="Extras" *ngIf="pizzaSelection && pizzaSelection.length">
  Would you like extra cheese on your pizza?
  <button pButton type="button" label="Ok, yeah!"></button>
</p-panel>

コンポーネントがp-プレフィックスをどのように使用しているかに注意してください。

変更をファイルに保存して、アプリケーションを提供します。

Screenshot of PrimeNG accordions, panels, radio buttons, and buttons.

ピザを選択すると、 Extras パネルが表示され、ユーザーにチーズを追加するように求められます。

結論

この記事では、Angular 4+プロジェクトでPrimeNGをセットアップし、いくつかの主要コンポーネントについて説明します。

利用可能なすべてのコンポーネントのショーケースとドキュメントについては、公式ドキュメントを参照して学習を続けてください。

Angle Material2を使用して代替UIコンポーネントライブラリを探索します。