パイプを使用してテーブルをフィルタリングしようとしています。 これは私のフィルタのコードです。入力ボックスを使用して角度2のテーブルをフィルタリングする
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'myFilter'
})
export class MyFilterPipe implements PipeTransform {
transform(value: any, args?: any): any {
return value.filter(item => item.name.indexOf(args[0]) !== -1);
}
}
私はこれは私がページを表示しようとすると、私が持っているビューのHTML
<md-input-container>
<md-icon>search</md-icon>
<input mdInput placeholder="Favorite food" [(ngModel)]="filterItem">
</md-input-container>
...
<table>
<tr *ngFor="let item of items | myFilter: filterItem">
<td>
<a href="#">
<span >
{{item.name}}
</span>
</a>
</td>
<td>
<div>{{item.value1}}</div>
<div>{{item.value2}}</div>
</td>
<td>
<span >
item.description
</span>
</td>
</tr>
</table>
ための私のコードです
import { MyFilterPipe } from './common/my-filter.pipe';
@NgModule({
declarations: [
MyFilterPipe
],
私app.module.tsにフィルタをインポートブラウザのこのエラー: "未定義のプロパティ '0'を読み取ることができません。フィルターのため、ページはロードしたくありません。私の推測では、最初にfilterItem
が空であるため、ページが読み込まれないようになっています。しかし、私はそれを解決する方法を知らない。 ご協力いただければ幸いです!ありがとう!
は 'args'がここに未定義の値であるように、多分あなたはargs'があることを前のように定義された'場合にのみ実行するようにフィルタを更新する可能性が見えますフィルタをまったく実行する必要はありません。 – GillesC