Компонент привязки значения MultiSelect формы Angular PrimeNG
PrimeNG — это библиотека компонентов AngularJS, разработанная PrimeFaces. Он предоставляет разработчикам возможность выбора из широкого спектра уже реализованных тем и компонентов пользовательского интерфейса для своих приложений. В этой статье мы обсудим компонент привязки значений Angular PrimeNG Form MultiSelect.
Компонент MultiSelect позволяет пользователю выбирать несколько параметров из набора предоставленных параметров. Значение параметра в MultiSelect ограничено самой моделью, но мы можем использовать свойство optionValue в Multiselect, чтобы передать пользовательское значение для параметров.
Свойства режима привязки значения MultiSelect формы Angular PrimeNG:
- options: это свойство принимает массив объектов для отображения в качестве параметров множественного выбора.
- optionLabel: это свойство указывает свойство объекта параметров для отображения меток параметров.
- optionValue: это свойство указывает свойство объекта параметров для получения значения параметров.
- defaultLabel: это свойство используется для указания строки-заполнителя для компонента MultiSelect.
- optionGroupLabel: это свойство указывает свойство объекта параметров для получения метки групп, когда множественный выбор находится в групповом режиме.
- optionGroupChildren: это свойство указывает свойство объекта параметров для получения дочерних элементов групп, когда множественный выбор находится в групповом режиме.
Синтаксис:
<p-multiSelect
[options]="..."
[(ngModel)]="..."
optionLabel="..."
optionValue="..."
defaultLabel="...">
</p-multiSelect>Создание приложения и установка необходимых модулей:
Шаг 1: Создайте приложение Angular с помощью следующей команды.
ng new my_app
Шаг 2: После создания приложения перейдите в папку проекта с помощью приведенной ниже команды.
cd new_app
Шаг 3: Наконец, установите следующие модули в каталог вашего проекта.
npm install primeng --save npm install primeicons --save
Структура проекта: Структура проекта показана на рисунке ниже.
Пример 1. Это простой пример, иллюстрирующий привязку значения в Multiselect с использованием свойства optionValue . Здесь мы устанавливаем для параметра optionValue значение «id», поэтому в качестве значения будет использоваться свойство id параметра. Мы устанавливаем идентификаторы параметров «Puma» и «HRX» в одну строку, поэтому всякий раз, когда один из них выбирается/отменяется, другой тоже выбирается. Это просто для того, чтобы показать, что значение привязано правильно.
- app.component.html
HTML
<h2 style="color: green;"> GeeksforGeeks</h2><h5> Angular PrimeNG Form MultiSelect Value Binding Component</h5><p-multiSelect class="custom-ms" [options]="brands" [(ngModel)]="selectedBrands" optionLabel="name" optionValue="id" defaultLabel="Select Brand(s)"></p-multiSelect> |
- app.component.ts
Javascript
import { Component } from "@angular/core";interface Brand { name: string; id: string;}@Component({ selector: "app-root", templateUrl: "./app.component.html", styles: [ ` :host ::ng-deep .custom-ms .p-multiselect-label { width: 300px !important; } ` ]})export class AppComponent { brands: Brand[] = []; selectedBrands: Brand[] = []; ngOnInit() { this.brands = [ { name: "Adidas", id: "sports_1" }, { name: "Puma", id: "sports_2" }, { name: "Nike", id: "sports_3" }, { name: "HRX", id: "sports_2" }, { name: "Delhivery", id: "trans_1" }, { name: "DHL", id: "trans_2" }, { name: "FedEx", id: "trans_3" } ]; }} |
- app.module.ts
Javascript
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 { MultiSelectModule } from "primeng/multiselect";@NgModule({ imports: [ BrowserModule, BrowserAnimationsModule, MultiSelectModule, FormsModule ], declarations: [AppComponent], bootstrap: [AppComponent],})export class AppModule { } |
Выход:
Пример 2. В этом примере мы использовали группировку параметров и установили для свойства optionValue значение «id», поэтому значение параметров будет взято из свойства id. Здесь мы устанавливаем идентификатор «Adidas» и «Puma» в одну строку, поэтому всякий раз, когда выбирается один, флажок другого также включается, и наоборот.
- app.component.html
HTML
<h2 style="color: green;"> GeeksforGeeks</h2><h5> Angular PrimeNG Form MultiSelect Value Binding Component</h5><p-multiSelect class="custom-ms" [group]="true" [options]="brandGroups" [(ngModel)]="selectedBrands" optionLabel="name" optionValue="id" optionGroupLabel="groupName" optionGroupChildren="brands" defaultLabel="Select Brand(s)"></p-multiSelect> |
- app.component.ts
Javascript
import { Component } from "@angular/core";interface Brand { name: string; id: string;}interface BrandsGroup { groupName: string; brands: Brand[];}@Component({ selector: "app-root", templateUrl: "./app.component.html", styles: [ ` :host ::ng-deep .custom-ms .p-multiselect-label { width: 300px !important; } ` ]})export class AppComponent { brandGroups: BrandsGroup[] = []; selectedBrands: Brand[] = []; ngOnInit() { this.brandGroups = [ { groupName: "Sports", brands: [ { name: "Adidas", id: "sports_1" }, { name: "Puma", id: "sports_1" }, { name: "Nike", id: "sports_3" }, { name: "HRX", id: "sports_4" }, ] }, { groupName: "Transport", brands: [ { name: "Delhivery", id: "trans_1" }, { name: "DHL", id: "trans_2" }, { name: "FedEx", id: "trans_3" } ] }, { groupName: "Clothing", brands: [ { name: "Peter England", id: "clothing_1" }, { name: "Allen Solly", id: "clothing_2" } ] } ]; }} |
- app.module.ts
Javascript
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 { MultiSelectModule } from "primeng/multiselect";@NgModule({ imports: [ BrowserModule, BrowserAnimationsModule, MultiSelectModule, FormsModule ], declarations: [AppComponent], bootstrap: [AppComponent],})export class AppModule { } |
Выход:
Ссылка: https://www.primefaces.org/primeng/multiselect