0

検索バーがあり、作成したいパイプを使用して、受信したjsonまたはオブジェクトの配列のすべての文字列または列を検索できるようにしたいと考えています。したがって、テーブルでこの結果を更新できます。

カスタムパイプの今まで持っているもの:(私がしようとしていることをしません)

transform(items: any[], args:string): any {
    let keys = [];
    for (let key in items) {
            keys.push({key: key, value: items[key]});
    }
    let ans = [];
    for (let k in keys){
        if(items[k].value.match('^.*' + args +'.*$')){
            ans.push({key: k, value: items[k]});
        }
    }
    return ans;  }   

HTML を検索 <input type="text" #filterInput (keyup)="0">

テーブル呼び出しパイプへの読み込み

<tbody *ngIf="usersBool">
<tr *ngFor="let entry of content | filterArrayOfObjects: filterInput" >
    <td>{{entry.value.enrollmentId}}</td>
    <td>{{entry.value.firstName}}</td>
    <td>{{entry.value.LastName}}</td>
    <td>{{entry.value.typeOfUser}}</td>
    <td>edit</td>
    <td>delete</td>

</tr>
</tbody>

次のようなダミーコンテンツがあります。

this.content = [
               {
                   "enrollmentId": "A0xxxxxx",
                   "firstName": "Bob",
                   "LastName": "Bob",
                   "typeOfUser": 'Admin'
               },
               {
                   "enrollmentId": "A0xxxxxx",
                   "firstName": "Bob",
                   "LastName": "Bob",
                   "typeOfUser": 'Admin'
               },
               {
                   "enrollmentId": "A0xxxxxx",
                   "firstName": "Bob",
                   "LastName": "Bob",
                   "typeOfUser": 'Admin'
               }
           ];
4

1 に答える 1

2

そのため、コンテンツ辞書にある各キーを検討し、検索バーに入力した内容と一致するコンテンツがあるかどうかを分析する必要がありました

transform(items: any[], args:string): any {

    let ans = [];
    for (let k in items){
        if(items[k].enrollmentId.match('^.*' + args +'.*$')
           || items[k].firstName.match('^.*' + args +'.*$')
           || items[k].lastName.match('^.*' + args +'.*$')
           || items[k].typeOfUser.match('^.*' + args +'.*$')) {
            ans.push({key: k, value: items[k]});
        }
    }
    return ans;

}

于 2016-10-02T22:47:01.857 に答える