簡體   English   中英

AngularJS:在ng-model上搜索多個值

[英]AngularJS: search multiple values on ng-model

我一直在尋找解決方案,但找不到確切的情況。 我想知道有人能幫上忙。 我有這樣的ng-repeat過濾器列表:

<ul>   
  <li ng-repeat="f in filterOptions">
  <p>{{f.group}}</p>   
    <ul>
      <li ng-repeat="o in f.options">
        <input id="{{$parent.f.filtername}}{{$index}}" type="checkbox" ng-model="Filter.category[o.title]" ng-true-value="{{o.title}}" ng-false-value=""  />
      </li>
    </ul>
  </li>
</ul>

我的JSON:

[
  {
    "group": "Product Categories",
    "filtername" : "category",
    "options": [
        {
            "title": "Category A",
            "alt_titles": ["Category B, Category C"]
        },
        {
            "title": "Category 1",
            "alt_titles": ["Category 2, Category 3"]
        }
    ]
  }
]

這樣,我可以成功搜索屬於o.titles的項目。 現在,我想知道應該怎么做才能搜索也屬於alt_titles的項目。

例如:如果我單擊“類別A”,它還將循環顯示“類別B”和“類別C”的項目。與類別1相同,它應顯示類別2和3上的項目。

我希望我很清楚。 請幫忙。 謝謝!


工作樣本FIDDLE

在這種情況下,您將需要一個自定義過濾器。 此處的文檔: https : //docs.angularjs.org/tutorial/step_09此處的示例: http : //plnkr.co/edit/lzyo5cTMd6FUzYw9JSq8

app.filter('MultiValueFilter',function(){
return function(list, queries){
  var result = [];
  var queries_regex = [];
  angular.forEach(queries, function(query){
    queries_regex.push(new RegExp('^' + escapeRegExp(query),'i'));
  });

  angular.forEach(list, function(item){
    for(var i = 0; i < queries_regex.length; ++i){
      if(queries_regex[i].test(item)){
        result.push(item);
        break;
      }
    }
  });
  return result;
  };
});

基本上,此函數循環遍歷列表中的每個項目,針對一個regexp列表進行測試,如果它與某個regexp匹配,則將其壓入結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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