* ngFor之后如何从Angular2组件中获取过滤数据

时间:2018-07-04 13:50:01

标签: angular typescript

我尝试获取组件中数据的过滤列表。 鉴于我有这样的事情:

<ng-container *ngIf=”(items | filter:search.value) as result”>
  <div *ngFor=”let item of result”>
    {{item}}
  </div>
</ng-container>

我需要从组件中获取result。 是的,我可以将{{result_setter(result)}}添加到ng-container,并在组件中创建带有变量的方法:

  filtered_data;
  result_setter(data) {
    this.filtered_data = data;
  }

但是看起来很烂。有人可以帮忙吗? 我发现了这篇文章https://netbasal.com/using-pipe-results-in-angular-templates-430683fa2213,评论中的用户也遇到了这个问题

1 个答案:

答案 0 :(得分:1)

管道仅用于显示数据。

如果要过滤值并将其放入组件中,请考虑在查询更改时过滤它们。

<input type="file" [(ngModel)]="search" (input)="filterData">

filterData() {
  this.filteredData = this.data.filter(item => /* your filtering */);
}

编辑,您也可以使用管道实例来过滤数据

filterData() {
  const pipe = new FilterPipe(); // Consider moving this as a class member
  this.filteredData = pipe.transform(this.data, this.search);
}