我使用ngx-translate通过我的应用翻译关键字,包括标签列表。用户应该能够用任何语言搜索它们。
以前我在做
this.tag_array_filtered = this.tag_array.filter(tag =>
tag.toUpperCase().includes(this.tag_searched.toUpperCase()));
)
但它只搜索关键字,而不是通过翻译。
这是我从密钥
获得翻译的方式this.translate.get(tag).subscribe(value => {
console.log(value);
})
变量tag_array
是一个键数组,可以翻译。 tag_searched
包含用户输入。 tag_array_filtered
是要显示的键(未翻译)数组
我想做什么:(显然没有工作)
this.tag_array_filtered = this.tag_array.filter(tag =>
this.translate.get(tag.toUpperCase()).subscribe((value: string) => {
value.includes(this.tag_searched.toUpperCase())
})
)
如何在使用订阅转换值时过滤我的数组?我想比较从数组转换的每个值到用户输入。
我可以用手工制作的循环来做到这一点,但是如果有一个已经存在的解决方案,它可能会更快。
答案 0 :(得分:0)
translate.get()
方法也接受一个字符串数组。
你可以这样试试。最终输出将是一个对象,如果需要,您可以将其转换为数组。
let tag_array_filtered = this.tag_array.filter(tag =>
tag.toUpperCase()
.includes(this.tag_searched.toUpperCase())
.map(e => e.toUpperCase())
this.translate.get(matching_tags).subscribe((values: {}) => {
this.tag_array_filtered_object = values
})