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

AngularJs删除ng-repeat中的重复元素

吴伟志
2023-03-14
问题内容

我有一本字典存放在 field_detail

<li ng-repeat = "field in field_detail">{{field.displayName}}</li>

现在,我不想包含重复displayNamefield_detail,我filter应该使用什么?


问题答案:

只需创建一个可以通过键获取唯一值的过滤器即可。这样的事情应该做(我根本没有测试过,所以我把这件事留给你,这只是给你一个主意):

app.filter('unique', function() {
   return function(collection, keyname) {
      var output = [], 
          keys = [];

      angular.forEach(collection, function(item) {
          var key = item[keyname];
          if(keys.indexOf(key) === -1) {
              keys.push(key);
              output.push(item);
          }
      });

      return output;
   };
});



<div ng-repeat="item in items | unique: 'id'"></div>

注意:Array.indexOf()在IE8中不起作用 ,因此,如果支持IE8,则需要在indexOf()中存根,或者需要使用稍微不同的方法。

其他想法:如果已经在引用那些库,那么最好创建一个利用lowdash或下划线的唯一函数的过滤器。



 类似资料:
  • 问题内容: 以下脚本使用来显示购物车。对于数组中的每个元素,它都会显示项目名称,其数量和小计()。 计算重复元素总价的最简单方法是什么? 问题答案: 在模板中 在控制器中

  • 问题内容: 我有以下几点: 而这在我的HTML: 我该如何匹配类型并在每次出现时仅回显一次呢? 问题答案: 要删除重复项,可以使用AngularUI 的 唯一 过滤器(源代码在这里:AngularUI唯一过滤器),然后直接在ng-options(或ng- repeat)中使用它。 在这里查看更多: 独特的东西 json结构中也存在语法错误。 工作守则 HTML 脚本

  • 本文向大家介绍Angularjs的ng-repeat中去除重复数据的方法,包括了Angularjs的ng-repeat中去除重复数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Angularjs的ng-repeat中去除重复数据的方法。分享给大家供大家参考,具体如下: 一、JS: 二、Html: 希望本文所述对大家AngularJS程序设计有所帮助。

  • 问题内容: 我目前正在使用这段代码来呈现列表: 但是,该元素在某些浏览器上引起一些非常小的渲染缺陷。我想知道是否可以在没有div容器的情况下执行ng- repeat,或者通过其他方法来达到相同的效果。 问题答案: 正如Andy Joslin所说,他们正在研究基于注释的ng- repeats,但显然存在太多浏览器问题。幸运的是,AngularJS 1.2添加了对重复的内置支持,而无需使用新的指令和添

  • 问题内容: 使用AngularJS,我需要使用选择器将HTML附加到ng-repeat元素:’objectMapParent-‘+ post._id 所以我创建了一个循环以遍历posts数组的元素的循环,对于每个元素,我在其中调用函数:createElement 该回调函数获得一个选择器elementParent,该选择器用于在DOM中查找节点,然后附加所需的HTML 但是有些事情行不通,就我而言

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7