現在のプロジェクトで角度2を使用しています。私はテーブルに複数のフィルターオプションを適用しようとしています。以下のコードを参照することができます。フィルターTempleteで角度2のフィルタ付きテーブルの複数の列にフィルタを適用する方法
<table class="table table-condensed table-responsive">
<thead>
<tr>
<td></td>
<td *ngFor="let key of headers">{{key}}</td>
</tr>
<tr>
<td></td>
<td *ngFor="let key of headers; let i=index">
<input type='text' id="{{key}}" (keyup)="filterUser(key)" placeholder="Search User By {{key}}"/>
</td>
</tr>
</thead>
<tbody *ngFor="let user of alluser | userFilter : columnName : listFilter " #someVar>
<tr>
<td><input type="checkbox" class="checkbox" value="{{user.Id}}" (change)="getSelectedUser()" [(ngModel)]="user.IsSelected" /></td>
<td>{{user.UserName}}</td>
<td>{{user.FirstName | uppercase}}</td>
<td>{{user.LastName}}</td>
<td><button type="button" class="btn btn-primary" (click)="editModal.Open(user)">Edit</button></td>
<td><button class="btn btn-primary" (click)='deletemodal.open()'>Delete</button></td>
<td></td>
</tr>
</tbody>
</table>
:コンポーネントで
export class UserFilterPipe implements PipeTransform {
transform(value: User[], field: string, args: string): User[]{
let filter: string = args ? args.toLocaleLowerCase() : null;
return filter ? value.filter((user: User) =>
user[field].toLocaleLowerCase().indexOf(filter) != -1) : value;
}
}
:HTMLテンプレートで
filterUser(key) {
debugger;
this.columnName = key;
var v1 = document.getElementById(key).value;
this.listFilter = v1;
}
'listFilter'とどのようにそれがあるべきである何フィルタリングされた? – mxii
実際に私は以前にフィルタリングされたデータと、このデータをトランスフォームメソッドに渡す方法が必要です – Trusha