我想使用Angular Material <md-chips>
制作自动完成功能。
我有以下html:
<md-chips ng-model="programs" md-require-match="true">
<md-autocomplete
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in querySearch(searchText)"
md-item-text="item.name"
placeholder="Target programs"
md-autoselect="true">
<span md-highlight-text="searchText">{{item.name}}</span>
</md-autocomplete>
<md-chip-template>
<span>
<strong>{{$chip.name}}</strong>
</span>
</md-chip-template>
</md-chips>
和方法querySearch
:
// Search for programs
scope.querySearch = function(query) {
if (typeof pauseMonitor !== 'undefined') {
$timeout.cancel(pauseMonitor);
}
pauseMonitor = $timeout(function() {
Programs.getQuery(query)
.then(function(data){
return data.data.campaigns;
});
}, 250);
};
我的问题是,在输入自动完成输入后,该方法会找到匹配良好的匹配项,但浏览器不会显示它们。我认为这可能是因为请求,但我不知道如何解决它。
感谢。
答案 0 :(得分:0)
在我看来,你忘记返回结果,你返回data.data.campaings
,但你也必须退还承诺。
你可以试试这个:
// Search for programs
scope.querySearch = function(query) {
if (typeof pauseMonitor !== 'undefined') {
$timeout.cancel(pauseMonitor);
}
pauseMonitor = $timeout(function() {
return Programs.getQuery(query)
.then(function(data){
return data.data.campaigns;
});
}, 250);
return pauseMontitor;
};