我正在尝试让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,但不会过滤它们。

我在这里做错了什么?
发布于 2016-06-09 04:42:33
我通过filter函数传递列表的数量,所以你的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) })
}但在使用query时,我使用的是自动补全绑定到的ng-model值。如果这还不够,请发布控制器的所有相关部分,我可以对其进行扩展。
https://stackoverflow.com/questions/37712112
复制相似问题