我创建了一个基于ID搜索表的管道。这是我用来填充表的示例JSON
let imageViewRight = (NSLayoutConstraint(item: self.image2P, attribute: .right, relatedBy: .equal, toItem: self.view, attribute: .right, multiplier: 1.0, constant: 0))
let imageViewLeft = (NSLayoutConstraint(item: self.image2P, attribute: .left, relatedBy: .equal, toItem: self.view, attribute: .left, multiplier: 1.0, constant: 0))
let imageViewTop = NSLayoutConstraint(item: self.image2P, attribute: .top, relatedBy: .equal, toItem: self.view, attribute: .top, multiplier: 1, constant: 0)
let imageViewBot = NSLayoutConstraint(item: self.image2P, attribute: .bottom, relatedBy: .equal, toItem: self.view, attribute: .bottom, multiplier: 1, constant:0)
self.view.addConstraints([imageViewBot,imageViewTop,imageViewRight,imageViewLeft])
NSLayoutConstraint.activate([imageViewBot,imageViewTop,imageViewRight,imageViewLeft])
有人能指出管道中的错误。?
[
{
"id": "59247cd5a05cfa4966af706d",
"lease": {
"client": {
"client_id": 1,
"client_name": "Test Client 1",
"date_added": "2017-05-12T07:13:46.197000"
},
"lease_id": 293,
"user_modified": "system"
}
}
]
我在html中调用了这样的管道。
export class SearchPipe implements PipeTransform {
transform(leaseData: any[], filter: any): any {
if (!leaseData || !filter) {
return leaseData;
}
return leaseData.filter(leaseData => leaseData.id.indexOf(filter.id) !== -1)
}
我想根据ID过滤数据。但是现在每当我输入一个角色时,整个数据就会消失。 filterlease是用于搜索的文本框的模型名称。
<tr *ngFor="let item of leaseData | search:filterLease; let i = index ">
答案 0 :(得分:0)
这不是过滤方法的工作方式。它应该是
return leaseData.filter(element => element.id === filter.id)
filter接受一个使用列表的每个元素调用的函数,如果元素必须保留在输出中,则该函数应该返回true。如果元素与过滤器具有相同的ID,则要保留该元素。