【问题标题】:How to create filter in Aurelia using repeat for?如何使用重复在 Aurelia 中创建过滤器?
【发布时间】:2016-04-24 11:27:05
【问题描述】:

我正在使用 repeat.for 在 HTML 中显示 json 数组。我想使用搜索文本框搜索匹配的记录。

【问题讨论】:

标签: typescript aurelia


【解决方案1】:

您可以使用 ValueConverter 来做到这一点:

data = [{'a': 'lorem'}, {'a' :'Ipsum'}, {'a' :'bla'}, {'a' :'blub'}, {'a' :'meh'}, {'a' :'isu'}];
export class FilterValueConverter {
    toView(items, search) {
        if(search === "" || search === undefined) return items;

        return items.filter((item) => item["a"].includes(search));
    }
}

此示例意味着您只想搜索一个属性(“a”)。但您也可以搜索多个属性并匹配结果。

<div repeat.for="element of data | filter: search" >
...

这将匹配区分大小写,您可以使用.toLowerCase() 匹配不区分大小写。

如果您有大量数据,这可能会出现性能问题

【讨论】:

    【解决方案2】:

    就像 Kabaehr 建议的那样,您可以使用值转换器来实现此目的,以将过滤器功能应用于able 中的每一行。我在这篇博文中有一个如何做到这一点的例子:

    http://sean-hunter.io/2015/12/29/searchable-tables-with-aurelia-value-converters/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多