【问题标题】:md-autocomplete not filtering?md-autocomplete 不过滤?
【发布时间】:2017-06-28 16:24:02
【问题描述】:

我正在尝试从 angular-material 库中获取 md-autocomplete 工作,文档有点难以理解。

这是我的html

<md-autocomplete
  md-items="lawyer in cdc.lawyers"
  md-selected-item-change="testing(lawyer)"
  md-min-length="0"
  md-item-text="lawyer.name"
  md-search-text="cdc.lawyerSearchText"
  md-search-text-change="cdc.triggerQuery(cdc.lawyerSearchText);"
  placeholder="Search for lawyer">
  <md-item-template>
    <span md-highlight-text="cdc.lawyerSearchText" md-highlight-flags="^i">{{lawyer.name}}</span>
  </md-item-template>
  <md-not-found>
    No states matching "{{lawyer.name}}" were found.
  </md-not-found>
</md-autocomplete>

这是javascript

this.lawyerSearchText = '';

this.triggerQuery = function(query){
  console.log(query);
  this.lawyerSearchText = query;
}

它会显示所有lawyers,但如果我在输入中输入乱码,它不会过滤它们。

我在这里做错了什么?

【问题讨论】:

  • 您的查询是否从您的 triggerQuery 函数记录到控制台?
  • 是的,输入的字符

标签: angularjs autocomplete angular-material


【解决方案1】:

我通过过滤器函数传递列表的人口,所以你的md-items 将是:

md-items="lawyer in cdc.triggerQuery(cdc.lawyers")

然后我通常会进行 $http 调用以在那里检索过滤后的列表,但在您的情况下,我认为在您的 triggerQuery 函数中您将返回过滤后的数组。比如:

this.triggerQuery = function(query){
    return this.lawyers.filter( function(lawyer) { return lawyer.indexOf(query)>-1) })
}

但是在您使用查询的地方,我使用的是自动完成绑定到的 ng-model 值。如果这还不够,请发布控制器的所有相关部分,我可以扩展它。

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    相关资源
    最近更新 更多