2017-01-23 4 views
3

私はtypescriptでangular2アプリケーションを開発しています。 入力テキストボックスに対応するユーザをフィルタリングする必要があります。データAngular2フィルターデータ一覧から

Input text box

Result

HTMLテーブルビューusers.html

<tr *ngFor='let user of Users'> 
     <td> 
      <img [src]='user.imageUrl' [title]='user.userName' [style.width.px]='imageWidth' [style.margin.px]='imageMargin'> 
     </td> 
     <td>{{ user.userName }}</td> 
    </tr> 

ユーザーリストuser-list.componet.ts

をフィルタリングした後

user.ts

export interface User { 
    userId: number; 
    userName: string; 

} 

export class UserListComponent implements OnInit { 
    imageWidth: number = 50; 
    imageMargin: number = 2; 
    users: User[] = [ 
     { 
      "productId": 2, 
      "productName": "Njjosgaaj", 
     } 
    ]; 

    ngOnInit(): void { 
     console.log('In OnInit'); 
    } 
} 

ユーザーインターフェイスは、私は、この使用してangular2カスタムパイプの開発を試みました。 私は開発について疑問に思っていますか? この機能を開発する最善の方法は何ですか?

+1

はSO、依頼する方法を確認してくださいへようこそ

export class UserListComponent implements OnInit { listFilter: string = 'cart'; -------------- } 

をUserListComponentするlistFilter属性を追加し、これらのコードを追加しますuser-filter.tsとして、新しいファイルを作成します。質問:http://stackoverflow.com/help/how-to-askだから、いくつかのコードを見せてあなたは試してみたところ、どこに失敗したのか、ありがとう! :) – Alex

+0

あなたはこれのためにあなた自身のコードのいくつかを投稿する必要があります。 –

答えて

2

フィルタユーザーに角カスタムパイプを使用できます。

この種類のフィルタにコードを追加してみてください。

import { PipeTransform, Pipe } from '@angular/core'; 

import { User } from './user'; 

@Pipe({ 
    name: 'productFilter' 
}) 
export class UserFilterPipe implements PipeTransform { 

    transform(value: User[], filterBy: string): User[] { 
     filterBy = filterBy ? filterBy.toLocaleLowerCase() : null; 
     return filterBy ? value.filter((user: User) => 
      user.userName.toLocaleLowerCase().indexOf(filterBy) !== -1) : value; 
    } 
} 

が変更HTMLビュー

<tr *ngFor='let user of Users | userFilter:listFilter '> 
     <td> 
      <img [src]='user.imageUrl' [title]='user.userName' [style.width.px]='imageWidth' [style.margin.px]='imageMargin'> 
     </td> 
     <td>{{ user.userName }}</td> 
    </tr> 
+0

パイプをフィルタリングに使用することはお勧めしません。 https://angular.io/docs/ts/latest/guide/pipes.html#!#no-filter-pipeをご覧ください。 –