Режимы сопоставления таблицы Angular PrimeNG Table Match
Angular PrimeNG — это фреймворк с открытым исходным кодом с богатым набором собственных компонентов пользовательского интерфейса Angular, которые используются для отличного стиля, и этот фреймворк используется для очень легкого создания адаптивных веб-сайтов. Он предоставляет множество шаблонов, компонентов, дизайн тем, обширную библиотеку иконок и многое другое. В этой статье мы собираемся изучить режимы Angular PrimeNG Table Match.
Режимы соответствия используются для фильтрации данных на основе их типов данных. Фильтр Angular PrimeNG предоставляет разные режимы сопоставления для разных типов данных. Например, текстовый тип отображает совпадения строк, а startWith соответствует совпадениям начальной строки.
Параметры режима текстового соответствия:
- Режим соответствия фильтра.STARTS_WITH
- FilterMatchMode.CONTAINS
- FilterMatchMode.NOT_CONTAINS
- Режим соответствия фильтра.ENDS_WITH
- FilterMatchMode.EQUALS
- FilterMatchMode.NOT_EQUALS
Параметры режима числового совпадения:
- FilterMatchMode.EQUALS
- FilterMatchMode.NOT_EQUALS
- Режим соответствия фильтра.LESS_THAN
- FilterMatchMode.LESS_THAN_OR_EQUAL_TO
- Режим соответствия фильтра.GREATER_THAN
- FilterMatchMode.GREATER_THAN_OR_EQUAL_TO
Параметры режима совпадения дат:
- FilterMatchMode.DATE_IS,
- FilterMatchMode.DATE_IS_NOT
- FilterMatchMode.DATE_BEFORE
- FilterMatchMode.DATE_AFTER
Синтаксис:
Используйте режимы соответствия следующим образом:
this.matchModeOptions = [ { label: "Starts With", value: FilterMatchMode.STARTS_WITH }, { label: "Contains", value: FilterMatchMode.CONTAINS }, { label: "Ends With", value: FilterMatchMode.ENDS_WITH }, { label: "Equals", value: FilterMatchMode.* }, ];
И применять его следующим образом:
<p-columnFilter type="text" [field]="col.field" [matchModeOptions]="matchModeOptions" > </p-columnFilter>
Создание приложения Angular и установка модуля:
Шаг 1: Создайте приложение Angular, используя следующую команду.
ng new geeks_angular
Шаг 2: После создания папки вашего проекта, например, geeks_angular, перейдите к ней с помощью следующей команды.
cd geeks_angular
Шаг 3: Установите PrimeNG в указанный вами каталог.
npm install primeng --save npm install primeicons --save
Структура проекта: Структура проекта будет выглядеть следующим образом:
Пример 1. В этом примере мы создаем таблицу и добавляем параметры фильтра.
app.component.html
HTML
< h1 style = "color:green;text-align:center;" > GeeksforGeeks </ h1 > < h3 >Angular PrimeNG Table Match modes</ h3 > < p-table #dt [columns]="cols" [value]="tutorials" [paginator]="true" [rows]="10" responsiveLayout = "scroll" > < ng-template pTemplate = "header" let-columns> < tr > < th * ngFor = "let col of columns" > {{ col.header }} </ th > </ tr > < tr > < th * ngFor = "let col of columns" > < p-columnFilter type = "text" [field]="col.field" [matchModeOptions]="matchModeOptions"> </ p-columnFilter > </ th > </ tr > </ ng-template > < ng-template pTemplate = "body" let-rowData let-columns = "columns" > < tr [pSelectableRow]="rowData"> < td * ngFor = "let col of columns" > {{ rowData[col.field] }} </ td > </ tr > </ ng-template > </ p-table > |
app.component.ts
Javascript
import { Component } from "@angular/core" ; import { SelectItem, FilterService, FilterMatchMode } from "primeng/api" ; @Component({ selector: "app-root" , templateUrl: "./app.component.html" , }) export class AppComponent { cols: any[]; tutorials: Tutorial[]; matchModeOptions: SelectItem[]; constructor(private filterService: FilterService) { } ngOnInit() { this .tutorials = [ { title: "Queue" , category: "Data Structure" , rating: 8, }, { title: "Circularly LinkedList" , category: "Data Structure" , rating: 1, }, { title: "Doubly LinkedList" , category: "Data Structure" , rating: 3, }, { title: "Singly LinkedList" , category: "Data Structure" , rating: 5, }, { title: "Doubly Ended Queue" , category: "Data Structure" , rating: 10, }, { title: "Binary Search Tree" , category: "Data Structure" , rating: 2, }, { title: "Red Black Tree" , category: "Data Structure" , rating: 9, }, { title: "Breadth First Search" , category: "Graph" , rating: 6, }, { title: "Floyd"s Cycle" , category: "Algorithm ", rating: 7, }, { title: " Travelling Salesman Problem ", category: " Algorithm ", rating: 4, }, { title: " Bellman Ford ", category: " Graph ", rating: 8, }, { title: " KMP Algorithm ", category: " String ", rating: 10, }, ]; this.cols = [ { field: " title ", header: " Title " }, { field: " category ", header: " Category " }, { field: " rating ", header: " Rating " }, ]; this.matchModeOptions = [ { label: " Starts With ", value: FilterMatchMode.STARTS_WITH }, { label: " Contains ", value: FilterMatchMode.CONTAINS }, { label: " Ends With ", value: FilterMatchMode.ENDS_WITH }, { label: " Equals", value: FilterMatchMode.EQUALS }, ]; } } export interface Tutorial { title?: string; category?: string; rating?: number; } |
app.module.ts
Javascript
import { NgModule } from "@angular/core" ; import { BrowserModule } from "@angular/platform-browser" ; import { HttpClientModule } from "@angular/common/http" ; import { FormsModule } from "@angular/forms" ; import { BrowserAnimationsModule } from "@angular/platform-browser/animations" ; import { AppComponent } from "./app.component" ; import { ToastModule } from "primeng/toast" ; import { ButtonModule } from "primeng/button" ; import { TableModule } from "primeng/table" ; import { AutoCompleteModule } from "primeng/autocomplete" ; import { InputTextModule } from "primeng/inputtext" ; @NgModule({ imports: [ BrowserModule, BrowserAnimationsModule, ButtonModule, AutoCompleteModule, FormsModule, TableModule, InputTextModule, HttpClientModule, ], declarations: [AppComponent], bootstrap: [AppComponent], }) export class AppModule { } |
Выход:
Пример 2: В следующем примере мы будем использовать режимы сопоставления числовых значений в столбце Рейтинг.
app.component.html
HTML
< h1 style = "color:green;text-align:center;" > GeeksforGeeks </ h1 > < h3 >Angular PrimeNG Table Match modes</ h3 > < p-table #dt [columns]="cols" [value]="tutorials" [paginator]="true" [rows]="10" responsiveLayout = "scroll" > < ng-template pTemplate = "header" let-columns> < tr > < th * ngFor = "let col of columns" > {{ col.header }} </ th > </ tr > < tr > < th * ngFor = "let col of columns" > < p-columnFilter type = "text" [field]="col.field" [matchModeOptions]="matchModeOptions"> </ p-columnFilter > </ th > </ tr > </ ng-template > < ng-template pTemplate = "body" let-rowData let-columns = "columns" > < tr [pSelectableRow]="rowData"> < td * ngFor = "let col of columns" > {{ rowData[col.field] }} </ td > </ tr > </ ng-template > </ p-table > |
app.component.ts
Javascript
import { Component } from "@angular/core" ; import { SelectItem, FilterService, FilterMatchMode } from "primeng/api" ; @Component({ selector: "app-root" , templateUrl: "./app.component.html" , }) export class AppComponent { cols: any[]; tutorials: Tutorial[]; matchModeOptions: SelectItem[]; constructor(private filterService: FilterService) { } ngOnInit() { this .tutorials = [ { title: "Queue" , category: "Data Structure" , rating: 8, }, { title: "Circularly LinkedList" , category: "Data Structure" , rating: 1, }, { title: "Doubly LinkedList" , category: "Data Structure" , rating: 3, }, { title: "Singly LinkedList" , category: "Data Structure" , rating: 5, }, { title: "Doubly Ended Queue" , category: "Data Structure" , rating: 10, }, { РЕКОМЕНДУЕМЫЕ СТАТЬИ |