簡體   English   中英

Angular2中的搜索過濾器

[英]Search filter in Angular2

我是Angular 2的新手。我正在嘗試使用Pipe進行搜索過濾器功能。 但是,我實際上無法搜索項目。 我一直在觀看有關如何使用過濾器進行搜索的視頻,但事實證明它們是徒勞的。 如果您能在這里幫助我,將不勝感激。

HTML檔案:

 <!--The content below is only a placeholder and can be replaced.--> <div style="text-align:center"> <h1> Welcome to {{title}}! </h1> </div> <form id="filter"> <label>Filter car by parts:</label> <input type="text" ng-Model="term"/> </form> <ul id="car-listing"> <li *ngFor ="let carPart of carParts | filter:term"> <h2> {{carPart.name | uppercase}} </h2> <p> {{carPart.description}} </p> <p *ngIf="carPart.inStock > 5"> {{carPart.inStock}} in Stock </p> <p *ngIf="carPart.inStock === 0"> Stock running low </p> <p> {{carPart.price | currency:'USD'}} </p> <p *ngIf="carPart.price === 350"> Special Promotion Only </p> </li> </ul> 

打字稿文件:

 import { Component } from '@angular/core'; import {FilterPipe} from './filter.pipe'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'List of Car Parts'; carParts = [ { "id": 1, "name": "Regular Tires", "description": "Tires for city use", "inStock": 10, "price": 200, }, { "id": 2, "name": "Supreme Tires", "description": "Tires for all conditions", "inStock": 0, "price": 350, }, { "id": 3, "name": "Premium Tires", "description": "Tires for all luxury models", "inStock": 8, "price": 400, } ]; } 

filter.pipe.ts

 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'filter' }) export class FilterPipe implements PipeTransform { transform(carParts: any, term: any): any { if (term === undefined) return carParts; return carParts.filter(function(carPart){ return carPart.name.toLowerCase().includes(term.toLowerCase()); }) } } 

您使用的ngModel不正確。

<input type="text" [(ngModel)]="term"/>

請檢查https://angular.io/api/forms/NgModel

希望能幫助到你!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM