【发布时间】:2016-04-24 11:27:05
【问题描述】:
我正在使用 repeat.for 在 HTML 中显示 json 数组。我想使用搜索文本框搜索匹配的记录。
【问题讨论】:
标签: typescript aurelia
我正在使用 repeat.for 在 HTML 中显示 json 数组。我想使用搜索文本框搜索匹配的记录。
【问题讨论】:
标签: typescript aurelia
您可以使用 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() 匹配不区分大小写。
如果您有大量数据,这可能会出现性能问题
【讨论】:
就像 Kabaehr 建议的那样,您可以使用值转换器来实现此目的,以将过滤器功能应用于able 中的每一行。我在这篇博文中有一个如何做到这一点的例子:
http://sean-hunter.io/2015/12/29/searchable-tables-with-aurelia-value-converters/
【讨论】: