为了账号安全,请及时绑定邮箱和手机立即绑定

在 Angular 8 中创建过滤管道

在 Angular 8 中创建过滤管道

智慧大石 2023-12-19 20:37:11
我在 Web 开发方面有一些经验,但对 Angular 还很陌生。我正在尝试创建一个简单的过滤器来根据文本输入过滤表的一列。我遇到的问题是,当您在文本输入中输入单个字母时,所有结果都会被过滤掉。AnimalsComponent.tsimport { ApiService } from '../api.service';import { AnimalFilterPipe } from '../animal-filter.pipe'@Component({  selector: 'app-animals',  templateUrl: './animals.component.html',  styleUrls: ['./animals.component.css'],  providers: [AnimalFilterPipe]})export class AnimalsComponent implements OnInit {    animals = [];    constructor(private apiService: ApiService) { }    ngOnInit() {        this.apiService.getA().subscribe((data: any[])=>{              console.log(data);              this.animals = data;          })      }}动物过滤管import { Pipe, PipeTransform } from '@angular/core';@Pipe({  name: 'animalFilter'})export class AnimalFilterPipe implements PipeTransform {  transform(animals: any, term: string): any {    //check if the search term is defined    if(!animals || !term) return animals;    //return updated animals array     animals.filter(function(animal){      return animal.Animal.toLowerCase().includes(term.toLowerCase());    })  }}动物.html<div style="padding: 13px;">  <form id = "animalFilter">    <label>Filter by Animal:</label>    <input type="text" [(ngModel)]= "term" [ngModelOptions]="{standalone: true}"/>  </form>    <table>        <tr>            <th>Hemisphere</th>            <th>Type</th>            <th>Animal</th>            <th>Seasonality</th>            <th>Location</th>            <th>Time</th>            <th>Price</th>          </tr>            <td align="center">TBD</td>          </ng-template>        </tr>    </table></div>如果有人可以帮助我并给我一些关于我需要更改的内容以及如何更好地前进的建议,以便我可以创建更多的过滤管道和更多的自定义管道。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您刚刚忘记了 return 中的语句transform

return animals.filter(animal => animal.Animal.toLowerCase().includes(term.toLowerCase()));


查看完整回答
反对 回复 2023-12-19
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信