[英]md-autocomplete - remove selected items in suggestion
我试图在用户选择一个项目并被标记为收藏夹时删除建议中的md-item
。 澄清这里的问题是下面的结构。
假设我们有这种states
结构。
function loadAll() {
var allStates = [
{
display : Alabama,
value : alabama,
is_favorite : false
},
{
display : Alaska,
value : alaska,
is_favorite : false
},
{
display : California,
value : california,
is_favorite : false
},
{
display : Colorado,
value : colorado,
is_favorite : false
},
{
display : Florida,
value : florida,
is_favorite : false
},
{
display : Georgia,
value : georgia,
is_favorite : false
},
];
return allStates;
}
当用户选择我将其放在函数md-selected-item-change
上的对象时,这就是我将状态标记为收藏。
function selectedItemChange(object) {
if (object) {
object.is_favorite = true;
}
}
现在可以改变createFilterFor()
以从结果中排除选择特定状态后具有is_favorite == true
的状态?
function createFilterFor(query) {
var lowercaseQuery = angular.lowercase(query);
return function filterFn(state) {
return (state.value.indexOf(lowercaseQuery) === 0);
};
}
这是我到目前为止尝试过但它没有呈现正确的结果。
return (state.value.indexOf(lowercaseQuery) === 0 && state.is_favorite == false);
UPDATE
有一个简单的解决方法:
md-items="item in ctrl.querySearch(ctrl.searchText)| filter:{ is_favorite:false }"
您所要做的就是将过滤器放在控件的源代码中。
请检查代码笔: http : //codepen.io/ash972/pen/ZLYNPM
创建一个这样的函数:
function filterFavotites(item) {
return !item.is_favorite;
}
并在返回结果之前在querySearch
调用它:
function querySearch (query) {
var results = query ? vm.states.filter( createFilterFor(query) ) : vm.states,
deferred;
results = results.filter(filterFavotites);
return results;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.