1

当我使用 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。我一直在寻找我的错误几个小时,但没有成功。

4

0 回答 0