1
我有一個接受對象的過濾器。現在,在我的HTML將對象傳遞給Pipe而不是Angular 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我是新來的,我的想法基本上是創建一個通用過濾器,我嘗試這樣。如果這不起作用,Plz建議我 – User