[英]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.