引用模板中管道项目的过滤结果

时间:2017-01-14 13:21:23

标签: templates angular

在自定义下拉列表UI组件中,我使用典型*ngFor显示let item in items; let ix = index循环中使用的项目。然后使用索引通过向上/向下箭头键在列表中移动。我会跟踪最后一个突出显示的项目并相应地表现。

当我添加一个搜索输入字段,向管道提供搜索字词值然后过滤掉不匹配的项目时会出现问题,如:

let item in items | searchPipe: currentTerm; let ix = index

指数变得与用户看到的混乱时的情况。 我想知道是否可以在模板语法中实现这一点,以获取当前的管道项目数组并在其上应用索引。

或者我应该以编程方式调用管道并为每个术语创建items的过滤副本,如:

let item in pipedItems; let ix = index

this.pipedItems = SearchPipe.transform(items, currentTerm);

使用自定义结构指令(例如*pipedFor)可以实现同样的目的吗?与前一种方法相比,它是否具有任何优势(除了可重用性之外)?

1 个答案:

答案 0 :(得分:1)

我认为这是要走的路

this.pipedItems = new SearchPipe().transform(items, currentTerm);

目前无法在模板中获取管道结果。 据我记得,前一段时间讨论过这个问题是否应该加上但是我还没想到发生了什么。