Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 和对象上的$filter_Angularjs_Filter - Fatal编程技术网

Angularjs 和对象上的$filter

Angularjs 和对象上的$filter,angularjs,filter,Angularjs,Filter,我有一个具有不同属性的对象,我想知道如何在多个过滤器上过滤它们,而不创建新的自定义过滤器,例如,我有一个包含城市和语言的People对象,实际上我只能按城市或语言对它们进行排序,但不能同时按以下行进行排序: <md-input-container> <label> Search for user... </label> <input ng-model="searchTerm" type="search" class="

我有一个具有不同属性的对象,我想知道如何在多个过滤器上过滤它们,而不创建新的自定义过滤器,例如,我有一个包含城市和语言的People对象,实际上我只能按城市或语言对它们进行排序,但不能同时按以下行进行排序:

<md-input-container>
    <label>
      Search for user...
    </label>
    <input ng-model="searchTerm" type="search" class="demo-header-searchbox md-text" flex>
</md-input-container>

<md-option ng-value="user" ng-repeat="user in users | filter:searchTerm ">
    {{user.city}} {{user.language}}
</md-option>
如何避免创建新的cutom筛选器?若要通过多个对象属性创建筛选器,可以使用筛选器框架筛选器

在HTML模板绑定中{{filter_expression}filter:expression:comparator:anyPropertyKey}。其中表达式可以是字符串、对象或函数

根据

对象:模式对象可用于过滤数组包含的对象的特定属性。例如{name:M,phone:1}谓词将返回一个项目数组,这些项目的属性名称包含M,属性phone包含1。默认情况下,可以使用特殊的属性名$,例如{$:text},以接受与对象的任何属性或其嵌套对象属性的匹配

要按城市和语言属性创建过滤器,只需使用:

<md-option 
    ng-value="user"
    ng-repeat="user in users | filter: {City:searchTerm, Language: searchTerm }">

  {{user.city}} {{user.language}}
</md-option>
您还可以使用函数参数来解决您的问题

functionvalue、index、array:谓词函数可用于编写任意筛选器。将为数组的每个元素调用该函数,并将元素、其索引和整个数组本身作为参数

最后的结果是谓词为其返回true的那些元素的数组


只需编写一个函数,根据您的搜索词过滤值的位置

您能澄清您的问题吗?你想干什么?通过多个对象属性创建筛选器而不创建自定义筛选器?如果我的问题不清楚,很抱歉。我想创建一个过滤器,例如,如果我写巴黎英语,它将显示每个离开巴黎说英语的用户感谢你的回答,我刚刚用过滤器尝试了你的解决方案:{City:searchTerm,Language:searchTerm}但是,例如,如果我键入Paris,那么该过滤器将不返回任何内容,因为它搜索的模型使用Paris作为预期的城市,但使用Paris作为语言,因此它不会返回任何内容…@TotoNaBendo实际上要完全符合您的要求,您需要每个属性使用不同的搜索词,或者您应该编写我提到的自定义函数。实现所有需求并返回所有记录布尔值是否匹配