Javascript 使用带有过滤器和重复记录的Ng repeat

Javascript 使用带有过滤器和重复记录的Ng repeat,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我用的是angularjs。我有一个包含记录和级别的数组,示例如下 [{id:1,level:1,partnerId:3}, {id:3,level:1,partnerId:''}, {id:5,level:1,partnerId:6}, {id:6,level:1,partnerId:''}, {id:7,level:2,partnerId:9}, {id:9,level:2,partnerId:''}] 我在levelid上进行过滤,并获得正确的显示,除非我得到的是单个记录,如果这些记录已

我用的是angularjs。我有一个包含记录和级别的数组,示例如下

[{id:1,level:1,partnerId:3},
{id:3,level:1,partnerId:''},
{id:5,level:1,partnerId:6},
{id:6,level:1,partnerId:''},
{id:7,level:2,partnerId:9},
{id:9,level:2,partnerId:''}]
我在
levelid
上进行过滤,并获得正确的显示,除非我得到的是单个记录,如果这些记录已经存在一个元素,我就不希望看到这些记录(例如,按顺序显示的项目将是
[1:3][3][5:6][6][7:9][9])
但我不希望
3,6,9
显示,因为其中一个已经存在。我不知道如何检查它是否已经显示,然后不显示。是否可以使用指令或
css
ng if
?如果是一个指令,我甚至不知道如何编写它。

只需创建一个获取唯一值的过滤器。大概是这样的:

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;
   };
});

<li ng-repeat="datax in individuals | unique: 'id'"></li>
app.filter('unique',function(){
返回函数(集合、键名){
变量输出=[],键=[];
angular.forEach(集合、功能(项){
var key=项目[keyname];
if(键索引of(键)=-1){
按键。按(键);
输出推送(项目);
}
});
返回输出;
};
});

  • 请发布您编写的代码,无需任何指令,只需在控制器中预过滤数据。
    你能给我举个控制器的例子吗?我对angularjs是新手