簡體   English   中英

md-autocomplete - 刪除建議中的選定項目

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

CODEPEN DEMO

有一個簡單的解決方法:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM