为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS中多个特定模型性质的过滤(在OR关系中)

AngularJS中多个特定模型性质的过滤(在OR关系中)

一只名叫tom的猫 2019-10-20 16:08:43
AngularJS中多个特定模型性质的过滤(在OR关系中)请看下面的示例:http:/docs.angularjs.org/api/ng.filter:filter您可以通过以下方法按任何电话属性进行搜索:<input ng-model="search">您可以只使用名称搜索,只需使用<input ng-model="search.name">,并根据名称对结果进行适当的过滤(键入电话号码不会像预期的那样返回任何结果)。假设我有一个具有“名称”属性、“电话”属性和“秘密”属性的模型,我将如何过滤双管齐下“名称”和“电话”属性和不“秘密”财产?因此,在本质上,用户可以键入名称或电话号码,然后将ng-repeat将正确过滤,但即使用户输入的值等于“秘密”值的一部分,它也不会返回任何内容。谢谢。
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

创建了自己的排序函数,并且我想分享它(因为我很无聊)。

形势我想通过一系列的汽车过滤。要筛选的属性是名称、年份、价格和公里。物业价格和公里是数字(因此使用.toString)。我还想控制大写字母(因此).toLowerCase)。另外,我希望能够将我的过滤器查询分成不同的单词(例如,给定Filter 2006 Acura,它发现2006年与年份匹配,Acura与名称匹配)。

我传递给过滤器的函数

        var attrs = [car.name.toLowerCase(), car.year, car.price.toString(), car.km.toString()],
            filters = $scope.tableOpts.filter.toLowerCase().split(' '),
            isStringInArray = function (string, array){
                for (var j=0;j<array.length;j++){
                    if (array[j].indexOf(string)!==-1){return true;}
                }
                return false;
            };

        for (var i=0;i<filters.length;i++){
            if (!isStringInArray(filters[i], attrs)){return false;}
        }
        return true;
    };



查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 601 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信