当我使用 md-autocomplete 时,过滤器将应用于倒数第二个按键而不是当前按键。我尝试了不同的过滤选项,但我被卡住了,不知道如何将我的 Meteor 集合与 md-autocomplete 集成。
在我的控制器组件中,我的过滤器逻辑是这样实现的:
this.searchText = '';
this.subscribe('people');
this.helpers({
people() {
return People.find({
name: {
$regex: `${this.getReactively('searchText')}.*`,
$options: 'i'
}
});
}
});
我的模板看起来是这样的:
<md-autocomplete
md-selected-item="ctrl.selectedItem"
md-search-text="ctrl.searchText"
md-items="person in ctrl.people"
md-item-text="person.name"
md-min-length="0"
placeholder="Who should be selected?">
<md-item-template>
<span md-highlight-text="ctrl.searchText" md-highlight-flags="^i">{{person.name}}</span>
</md-item-template>
<md-not-found>
Nobody found matching "{{ctrl.searchText}}".
</md-not-found>
</md-autocomplete>
过滤器在问题旁边起作用,即我的 searchText 的最后一个键未应用于过滤列表。
示例:我的收藏中有人物“Till”、“Tony”和“Andy”。当我键入“T”时,根本没有过滤掉任何内容,但来自 Till 和 Tony 的 T 在我的列表中正确突出显示。当我输入“Ti”时,Till 和 Tony 留在列表中,而 Andy 被过滤掉了。Till 的“Ti”突出显示。所以突出显示按预期工作,但过滤器不适用于我输入的最后一个字母。
我会很高兴得到一些提示,如何将我的 searchText 正确应用于 md-autocomplete。我一直在寻找我的错误几个小时,但没有成功。