Angular ui-select with or conditioned filter



我试图在ui select中使用或条件过滤器,但我不知道如何处理。我在这里也回答了类似的问题。但这是要求使用AND条件,这也适用于我。这是我的代码

HTML

<ui-select ng-model="citySelected">
    <ui-select-match>
        {{$select.selected.name + ', ' + $select.selected.country}}
    </ui-select-match>
    <ui-select-choices repeat="city in List | filter: {name: $select.search} | orderBy:'sortOrder'">
        <span ng-bind-html="city.name + ', ' + city.country| highlight: $select.search"></span>
    </ui-select-choices>
</ui-select>

我使用属性过滤器来搜索我指定的任何参数。

    app.filter('propsFilter', function() {
       return function(items, props) {
           var out = [];
           if (angular.isArray(items)) {
               items.forEach(function(item) {
               var itemMatches = false;
               var keys = Object.keys(props);
               for (var i = 0; i < keys.length; i++) {
                   var prop = keys[i];
                   var text = props[prop].toLowerCase();
                   if (item[prop].toString().toLowerCase().indexOf(text) !== -1){
                       itemMatches = true;
                       break;
                   }
                }
                if (itemMatches) {
                  out.push(item);
                }
             });
           } else {
           // Let the output be the input untouched
               out = items;
           }
           return out;
         }
    });
 //To use add this to UI-Selet Where you are using filter
 <ui-select-choices repeat="city in List | propsFilter: {name: $select.search, secondFilter: $select.search, third: $select.search} | orderBy:'sortOrder'">

相关内容

  • 没有找到相关文章

最新更新