,可以通过以下步骤实现:
下面是一个示例代码:
在组件的模板中:
<div>
<label *ngFor="let project of projects">
<input type="checkbox" [value]="project" (change)="toggleSelection($event.target.checked, project)">
{{ project.name }}
</label>
</div>
<div>
<h3>筛选后的项目列表:</h3>
<ul>
<li *ngFor="let filteredProject of filteredProjects">{{ filteredProject.name }}</li>
</ul>
</div>
在组件的代码中:
import { Component } from '@angular/core';
@Component({
selector: 'app-project-filter',
templateUrl: './project-filter.component.html',
styleUrls: ['./project-filter.component.css']
})
export class ProjectFilterComponent {
projects = [
{ name: '项目1', category: '类别1' },
{ name: '项目2', category: '类别2' },
{ name: '项目3', category: '类别1' },
{ name: '项目4', category: '类别3' },
{ name: '项目5', category: '类别2' }
];
filteredProjects = [];
toggleSelection(checked: boolean, project: any) {
if (checked) {
this.filteredProjects.push(project);
} else {
const index = this.filteredProjects.indexOf(project);
if (index !== -1) {
this.filteredProjects.splice(index, 1);
}
}
}
}
在上述示例中,我们使用ngFor指令循环遍历项目列表,并为每个项目生成一个复选框。在change事件处理程序中,根据复选框的选中状态,将选中的项目添加到filteredProjects数组中或从数组中移除。最后,我们在模板中使用ngFor指令循环遍历filteredProjects数组,展示筛选后的项目列表。
请注意,这只是一个简单的示例,实际应用中可能需要更复杂的筛选逻辑和UI设计。另外,根据具体需求,可以使用Angular的其他功能和库来实现更高级的筛选功能,例如使用管道进行数据过滤。
领取专属 10元无门槛券
手把手带您无忧上云