1
私はオブジェクトを受け入れるフィルターを持っています。今私のhtmlで角度2のキーの代わりにオブジェクトにパイプを渡す
<div class="col-lg-12" *ngIf="subUserDetailsList">
<table class="table table-striped" [mfData]="subUserDetailsList" #mf="mfDataTable" [mfRowsOnPage]="5">
<thead>
<tr>
<th><input name="" type="checkbox" value=""></th>
<th>
<mfDefaultSorter by="name">Name</mfDefaultSorter>
</th>
<th>
<mfDefaultSorter by="email">Email</mfDefaultSorter>
</th>
<th>
<mfDefaultSorter by="age">Role Name</mfDefaultSorter>
</th>
<th>
<mfDefaultSorter by="city">Actions</mfDefaultSorter>
</th>
</tr>
</thead>
<tbody>
<!-- <tr class="card-block" *ngFor="let subUser of mf.data | genericFilter: name"> --> //This works when model of the above textbox is name. However my idea is to pass an object.
<tr class="card-block" *ngFor="let subUser of (mf.data | genericFilter:filterArgs.first_name)">
<td><input name="" type="checkbox" value="{{subUser.id}}"></td>
<td>{{subUser.full_name}}</td>
<td>{{subUser.email}}</td>
<td>{{subUser.role.role_name}}</td>
<td><a href="{{subUser.id}}" data-toggle="modal" data-target="#role">Edit, Delete</a></td>
</tr>
</tbody>
</table>
ここに私のパイプの変換方法
transform(list: any[], obj: {}) {
let result:any;
let filter = obj ? obj : null;
if (filter && Array.isArray(list)) {
let filterKeys = Object.keys(filter);
result= list.filter(item =>
filterKeys.reduce((isExist, keyName) =>
isExist && item[keyName].toString().indexOf(filter[keyName].toString()) !== -1, true
)
);
}
else {
return list;
}
return result;
}
}
は今私のフィルタは、オブジェクトを受け入れています。これは決してパイプにヒットしません。私に提案してください。私のHTMLからパイプにオブジェクトをどのように渡すべきですか?
上
よりますが、実際に「決して」を意味していないか、またはオブジェクトのプロパティが変更されたとき、あなたは再び「一度だけ」という意味ではないのですか? –
@GünterZöchbauer私はこれに慣れず、私の考えは基本的にGenericフィルターを作成することでした。 Plzはこれがうまくいかない場合は私にお勧めします – User