根据参数而不是值过滤对象

时间:2014-02-17 10:25:42

标签: angularjs angularjs-filter

我有json对象,在页面上显示ng-repeat。我可以搜索它们,但我需要能够通过选择html元素的某个参数“过滤”它们。

为了更好地理解,让我们说这是我的HTML代码:

<select ng-model="selectedGroupToShow" ng-options="group.Name for group in myGroups">
    <option value="">-- choose something --</option>
</select>

让我们说myGroups Name属性是“Group1,Group2,Group3 ......”。它们还有indeces和其他参数,但Name是我选择的(这是用户想要看到的)

对象构建如下:

{'groupID': value, 'parameter2':value, 'parameter3':value, …}
… 

现在如果我使用selectedGroupToShow作为过滤器,对象将被group.Name过滤,这当然是正确的,但我的对象没有group.Name作为其中的值。他们拥有的是组ID号,它作为参数groupID中的值给出。

我是否可以通过某种方式选择 groupID 值?我仍然需要在select中显示group.Name,但是在参数'groupID'中搜索group.Id作为值?

我面临的问题再一次是:

  • 过滤搜索所有对象的值。我只需要在一个确切的参数中搜索某个值)
  • 用于搜索你通常使用输入字段(我也在做什么)但是我也需要能够对某些参数使用select(这里的问题是从对象的名称中选择,但要从对象的id中搜索)例如)

如果我不清楚,请不要犹豫,询问更多信息(我很难将我的问题转化为可理解的问题)

1 个答案:

答案 0 :(得分:0)

有一点困难时间100%理解这个问题,我希望这是你正在寻找的。

<select ng-model="selectedValue" ng-options="g.groupID as g.Name for g in groups"></select>

JSFiddle:http://jsfiddle.net/ADukg/4709/

这应该为您选择ID,但在进行选择时将其标记为用户的名称。

表“ngOptions”是如何使用集合/数组作为select元素的选项的一个很好的参考。 http://docs.angularjs.org/api/ng/directive/select

编辑:新建JSFiddle,按指定参数过滤组列表。 http://jsfiddle.net/ADukg/4713/

过滤器上的文档:http://docs.angularjs.org/api/ng/filter/filter

编辑#2:用户小提琴,配置为正确过滤。 http://jsfiddle.net/ADukg/4722/