Angular PrimeNG带有模板、过滤和清除图标组件的表格下拉高级版

Angular PrimeNG带有模板、过滤和清除图标组件的表格下拉高级版

Angular PrimeNG是一个开源的框架,有丰富的原生Angular UI组件,用来做很好的造型,这个框架用来做响应式的网站,非常方便。在这篇文章中,我们将知道如何在Angular ngx bootstrap中使用日历组件。

带有模板、过滤和清除图标组件的高级下拉:这种类型的下拉是高级的,我们将在其中使用模板、过滤和清除图标。

语法:

<p-dropdown [filter]="true" filterBy="name">
    <ng-template pTemplate="selectedItem">
    </ng-template>
    <ng-template let-country pTemplate="item">
    </ng-template>
</p-dropdown>

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

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

ng new appname

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

cd appname

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

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

Project Structure:

带有模板、过滤和清除图标组件的Angular PrimeNG表格下拉高级版

示例1:在下面的代码中,我们将使用上述语法来演示Angular PrimeNG Form Dropdown Advanced with Templating, Filtering and Clear Icon Component的使用。

app.component.html

<div style="text-align:center;">
    <h1 style="color:green;">GeeksforGeeks</h1>
    <h3>A computer science portal for geeks</h3>
    <h4>
        Angular PrimeNG Form Dropdown 
        Advanced with Templating, 
        Filtering and Clear Icon Component
    </h4>
    <h5>Filtering</h5>
    <p-dropdown
        [options]="items"
        [(ngModel)]="item"
        placeholder="Select Item"
        [virtualScroll]="true"
        [itemSize]="31"
        [filter]="false"
    ></p-dropdown>
</div>

app.component.ts

import { Component } from '@angular/core';
import {MenuItem} from 'primeng/api';
import {SelectItem} from 'primeng/api';
import {SelectItemGroup} from 'primeng/api';
  
interface City {
    name: string,
    code: string
}
  
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
})
export class AppComponent { 
      
    cities: City[];
    selectedCity1: City;
    selectedCity2: City;
    selectedCity3: string;
    selectedCountry: string;
    countries: any[];
    groupedCities: SelectItemGroup[];
    items: SelectItem[];
    item: string;
  
    constructor() {
        this.items = [];
        for (let i = 0; i < 10000; i++) {
            this.items.push({label: 'Item ' + i, value: 'Item ' + i});
        }
  
        this.cities = [
            {name: 'India', code: 'NY'},
            {name: 'Rome', code: 'RM'},
            {name: 'London', code: 'LDN'},
            {name: 'Istanbul', code: 'IST'},
            {name: 'Paris', code: 'PRS'}
        ];
  
        this.groupedCities = [
            {
                label: 'India', value: 'IND', 
                items: [
                    {label: 'Mumbai', value: 'Mumbai'},
                    {label: 'Varanasi', value: 'Varanasi'},
                    {label: 'Nashik', value: 'Nashik'},
                    {label: 'Delhi', value: 'Delhi'}
                ]
            },
            {
                label: 'USA', value: 'us', 
                items: [
                    {label: 'Chicago', value: 'Chicago'},
                    {label: 'Los Angeles', value: 'Los Angeles'},
                    {label: 'New York', value: 'New York'},
                    {label: 'San Francisco', value: 'San Francisco'}
                ]
            },
            {
                label: 'Japan', value: 'jp', 
                items: [
                    {label: 'Kyoto', value: 'Kyoto'},
                    {label: 'Osaka', value: 'Osaka'},
                    {label: 'Tokyo', value: 'Tokyo'},
                    {label: 'Yokohama', value: 'Yokohama'}
                ]
            }
        ];
  
        this.countries = [
            {name: 'Australia', code: 'AU'},
            {name: 'Brazil', code: 'BR'},
            {name: 'China', code: 'CN'},
            {name: 'Egypt', code: 'EG'},
            {name: 'France', code: 'FR'},
            {name: 'Germany', code: 'DE'},
            {name: 'India', code: 'IN'},
            {name: 'Japan', code: 'JP'},
            {name: 'Spain', code: 'ES'},
            {name: 'United States', code: 'US'}
        ];
    }
}

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 { DropdownModule } from 'primeng/dropdown';
  
@NgModule({
    imports: [
        BrowserModule,
        BrowserAnimationsModule,
        DropdownModule,
        FormsModule
    ],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})
  
export class AppModule { }

app.component.scss

:host ::ng-deep .p-dropdown {
    width: 14rem;
}

输出:

带有模板、过滤和清除图标组件的Angular PrimeNG表格下拉高级版

示例2:在下面的代码中,我们将使用上述语法来演示Angular PrimeNG Form Dropdown Advanced与模板、过滤和清除图标组件的使用。

app.component.html

<div style="text-align:center;">
    <h1 style="color:green;">GeeksforGeeks</h1>
    <h3>A computer science portal for geeks</h3>
    <h4>
        Angular PrimeNG Form Dropdown 
        Advanced with Templating, 
        Filtering and Clear Icon Component
    </h4>
    <h5>
        Advanced with Templating, Filtering and Clear Icon
    </h5>
    <p-dropdown
        [options]="countries"
        [(ngModel)]="selectedCountry"
        optionLabel="name"
        [filter]="true"
        filterBy="name"
        [showClear]="true"
        placeholder="Select a Country"
    >
        <ng-template pTemplate="selectedItem">
            <div class="country-item country-item-value" 
                 *ngIf="selectedCountry">
            <div>{{ selectedCountry.name }}</div>
            </div>
        </ng-template>
        <ng-template let-country pTemplate="item">
            <div class="country-item">
            <div>{{ country.name }}</div>
            </div>
        </ng-template>
    </p-dropdown>
</div>

app.component.ts

import { Component } from '@angular/core';
import {MenuItem} from 'primeng/api';
import {SelectItem} from 'primeng/api';
import {SelectItemGroup} from 'primeng/api';
  
interface City {
    name: string,
    code: string
}
  
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent { 
      
    cities: City[];
    selectedCity1: City;
    selectedCity2: City;
    selectedCity3: string;
    selectedCountry: string;
    countries: any[];
    groupedCities: SelectItemGroup[];
    items: SelectItem[];
    item: string;
  
    constructor() {
        this.items = [];
        for (let i = 0; i < 10000; i++) {
            this.items.push({label: 'Item ' + i, value: 'Item ' + i});
        }
  
        this.cities = [
            {name: 'India', code: 'NY'},
            {name: 'Rome', code: 'RM'},
            {name: 'London', code: 'LDN'},
            {name: 'Istanbul', code: 'IST'},
            {name: 'Paris', code: 'PRS'}
        ];
  
        this.groupedCities = [
            {
                label: 'India', value: 'IND', 
                items: [
                    {label: 'Mumbai', value: 'Mumbai'},
                    {label: 'Varanasi', value: 'Varanasi'},
                    {label: 'Nashik', value: 'Nashik'},
                    {label: 'Delhi', value: 'Delhi'}
                ]
            },
            {
                label: 'USA', value: 'us', 
                items: [
                    {label: 'Chicago', value: 'Chicago'},
                    {label: 'Los Angeles', value: 'Los Angeles'},
                    {label: 'New York', value: 'New York'},
                    {label: 'San Francisco', value: 'San Francisco'}
                ]
            },
            {
                label: 'Japan', value: 'jp', 
                items: [
                    {label: 'Kyoto', value: 'Kyoto'},
                    {label: 'Osaka', value: 'Osaka'},
                    {label: 'Tokyo', value: 'Tokyo'},
                    {label: 'Yokohama', value: 'Yokohama'}
                ]
            }
        ];
  
        this.countries = [
            {name: 'Australia', code: 'AU'},
            {name: 'Brazil', code: 'BR'},
            {name: 'China', code: 'CN'},
            {name: 'Egypt', code: 'EG'},
            {name: 'France', code: 'FR'},
            {name: 'Germany', code: 'DE'},
            {name: 'India', code: 'IN'},
            {name: 'Japan', code: 'JP'},
            {name: 'Spain', code: 'ES'},
            {name: 'United States', code: 'US'}
        ];
    }
}

app.module.ts

代码 block

app.component.scss

:host ::ng-deep .p-dropdown {
    width: 14rem;
}

输出:

带有模板、过滤和清除图标组件的Angular PrimeNG表格下拉高级版

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程