Angular2管道无法正常工作

时间:2017-05-25 16:35:58

标签: angular

我创建了一个基于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 ">

1 个答案:

答案 0 :(得分:0)

这不是过滤方法的工作方式。它应该是

return leaseData.filter(element => element.id === filter.id)

filter接受一个使用列表的每个元素调用的函数,如果元素必须保留在输出中,则该函数应该返回true。如果元素与过滤器具有相同的ID,则要保留该元素。