2016-06-08 54 views
0

我试图让md-autocompleteangular-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,但如果我在输入类型废话不多过滤。

enter image description here

我在做什么错在这里?

+0

您的查询是否从triggerQuery函数记录到控制台? –

+0

是的,输入的字符 –

回答

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值的自动完成,势必。如果这还不够,发布控制器的所有相关部分,我可以扩展它。