angular - 带管道过滤器的角度搜索框
问题描述
我正在尝试使用管道过滤器,所以我可以按名称搜索所有部门,但我不明白我做错了什么。
import {Pipe, PipeTransform} from '@angular/core';
import { Department } from '../department';
@Pipe({
name: 'depfilter'
})
export class DepFilterPipe implements PipeTransform {
transform(departments:Department[],searchDep:string):Department[] {
if(!departments|| !searchDep){
return departments;
}
return departments.filter(department=>department.name.toLowerCare().indexOf(searchDep.toLowerCase())!==-1)
}
}
这是我的管道文件,然后是部门文件夹: 在此处输入图像描述
这是我在部门.component.html 和部门.component.ts 中的代码
<div class="container">
<h2> Departments </h2>
<p class="info"> To update any of the departments you should click on the name of the department.</p>
<p class="search">Search a name of Department:</p>
<input [(ngModel)]="searchDep" placeholder="Type a department you are looking for">
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col"> Department ID</th>
<th scope="col">Department name</th>
<th scope="col">Location</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let department of departments | depfilter : searchDep">
<th scope="row">{{ department.id}}</th>
<td><a class="link" routerLink="/Depdetail/{{department.id}}">{{ department.name }}</a></td>
<td>{{ department.location }}</td>
<td> <button class="delete" title="delete department"
(click)="delete(department)">delete</button></td>
</tr>
</tbody>
</table>
<a class="adddepartment" routerLink="/addDept"> New Department </a>
</div>
这里我只有 searchDep:string
import { Component, OnInit } from '@angular/core';
import { Departments } from '../departments';
import { Department } from '../department';
import { DepartmentService } from '../department.service';
@Component({
selector: 'app-departments',
templateUrl: './departments.component.html',
styleUrls: ['./departments.component.css']
})
export class DepartmentsComponent implements OnInit {
departments: Department[];
searchDep: string;
constructor(private departmentService: DepartmentService) { }
ngOnInit() {
this.getDepartments();
}
getDepartments(): void {
this.departmentService.getDepartments().
subscribe(departments => this.departments = departments);
}
delete(department: Department): void {
this.departments = this.departments.filter(d => d !== department);
this.departmentService.deleteDepartment(department);
}
}
解决方案
推荐阅读
- c++ - 在类设计中查找外部命名空间中的重载运算符
- javascript - 编写 1 个 JavaScript 语句,该语句将从文本框中获取文本,并在单击按钮时使用它来设置段落的边框
- multiple-monitors - 我想在 2 台显示器上播放视频 uipath
- .net - ASP.NET MVC 5 与 ASP.NET Core
- javascript - 我有两个相同的 html 输入文本 id 但不同的 div 如何在 jquery 中获取两个 id 值
- windows - 如何解决函数 GsDriverEntry 中引用的 LNK2019 未解析的外部符号 DriverEntry?
- javascript - How do I print a reversed times table in Javascript
- mysql - MySQL 三表查询或联合
- c# - GetGenericArguments()[0] vs GetGenericArguments()[1] 关于 c# 中的匿名类型
- sql - Firebird 按总和分组并选择最大值