当前位置: 首页 > 面试题库 >

如何使ng-repeat过滤出重复的结果

单于正业
2023-03-14
问题内容

我正在运行一个简单ng-repeat的JSON文件,并希望获取类别名称。大约有100个对象,每个对象都属于一个类别-但是只有大约6个类别。

我当前的代码是这样的:

<select ng-model="orderProp" >
  <option ng-repeat="place in places" value="{{place.category}}">{{place.category}}</option>
</select>

输出是100个不同的选项,大部分重复。我该如何使用Angular来检查a是否{{place.category}}已经存在,如果已经存在则不创建选项?

编辑:在我的javascript中$scope.places = JSON data,只是为了澄清


问题答案:

您可以使用AngularUI 的 唯一
过滤器(此处提供源代码:AngularUI唯一过滤器),然后直接在ng-options(或ng-
repeat)中使用它。

<select ng-model="orderProp" ng-options="place.category for place in places | unique:'category'">
    <option value="0">Default</option>
    // unique options from the categories
</select>


 类似资料:
  • 我在一个网站上使用angularjs,那里有一个搜索输入,可以过滤视图上的列表。此列表显示为一个ng-repeat,该ng-repeat具有搜索输入中的筛选器: 搜索输入:

  • 问题内容: 我想在Angular中使用ng-repeat,而我只想输出数组的某些元素。一个例子: 但是,这不起作用。请告诉我该怎么做;仅输出元素的精确索引。 问题答案: 在您的代码中,过滤器应用于“ items”数组,而不是应用于每个数组项,这就是为什么它无法按预期工作的原因。 相反,您可以使用ng-show(或ng-if): 请参阅:http://jsfiddle.net/H7d26 编辑:如果

  • 问题内容: 我正在尝试做类似的事情: AngularJs部分: 但是不知何故,它向我展示了所有物品。如何筛选(键,值)? 问题答案: Angular 过滤器只能通过angular的API应用于数组,而不能应用于对象- “从数组中选择项的子集,并将其作为新数组返回。” 您在此处有两个选择: 1)移至数组或 -2)预过滤项目,如下所示: 并在控制器上: jsfiddle :http : //jsfid

  • 问题内容: 我在文档中看到了过滤器,该过滤器允许我限制前5个或最后5个结果,但是我想设置限制的起始位置,以便显示第二组5个结果。 是否有内置的过滤器? 问题答案: 从Angular 1.4.0开始,过滤器接受一个可选参数: 在旧版本中,编写自定义过滤器非常简单。这是一个简单的实现(请注意,您传递的是第一个和最后一个索引,而不是一个计数): 可用的jsFiddle:http://jsfiddle.n

  • 问题内容: 我想知道Angular中是否有一种简单的方法,可以使用特定的列(而非逻辑)来过滤表。现在,当我的过滤器实际上只需要过滤2列数据(ID和Name)时,它就会搜索表中的所有内容(10列以上的数据)。 我设法使它仅在过滤时仅查看这两列(通过根据文档在过滤器表达式中使用一个对象并查看此SO答案,但是它使用的是逻辑,太具体了。我想让它使用逻辑,但是遇到了麻烦。 我的HTML 我的过滤逻辑: 过滤

  • 问题内容: 我有一个简单的导航对象设置,其中列出了导航项(以及它们是否应出现在主导航中)。看来,当我尝试将ng-if与ng- repeat混合使用时,情况会分崩离析,但是当我将ng-show与ng- repeat混合使用时,它可以正常工作(但是最后我得到了一堆隐藏的元素,但我没有想要附加到DOM)。 但是以下操作无效(请注意,现在是): 路线对象看起来像 尝试使用时收到以下错误: 错误:多个指令[