在Angular中,PrimeNG是一个流行的UI组件库,它提供了丰富的下拉菜单组件。下面是一个使用PrimeNG的Dropdown组件实现分组以及除了标签/值之外的其他值的示例代码:
npm install primeng primeicons --save
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { DropdownModule } from 'primeng/dropdown';
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
DropdownModule,
FormsModule
],
declarations: [],
bootstrap: [],
})
export class AppModule { }
{{optgroup.label}}
{{option.label}}
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
cars: any[];
selectedCar: any;
ngOnInit() {
this.cars = [
{label: 'Group 1', items: [
{label: 'Item 1.1'},
{label: 'Item 1.2'},
{label: 'Item 1.3'}
]},
{label: 'Group 2', items: [
{label: 'Item 2.1'},
{label: 'Item 2.2'},
{label: 'Item 2.3'}
]}
];
}
}
在上述示例中,我们首先在app.module.ts中导入所需的PrimeNG模块。然后,我们在组件的HTML模板中使用p-dropdown指令来创建Dropdown组件。我们设置[group]="true"来启用分组,并使用[optionGroupLabel]="optionGroupTemplate"来指定一个模板来显示分组标签。在模板中,我们使用optgroup变量来访问分组对象,并使用optgroup.label来显示分组标签。对于每个选项,我们使用option.label来显示选项的标签,并添加一个气泡图标。
最后,在组件的TypeScript代码中,我们定义了cars数组来存储分组和选项的数据。在ngOnInit方法中,我们初始化cars数组,每个组包含一个label属性和一个items属性,items属性是一个包含选项对象的数组,每个选项对象包含一个label属性。
这样,在页面加载时,Dropdown组件将显示分组和选项,并且除了标签/值之外还显示了一个气泡图标。