angularjs ng-repeat过滤器基于数组长度

时间:2015-02-08 19:46:14

标签: angularjs filter

我想知道,我如何设置一个过滤器,只重复带有颜色的物品?我希望网格上方有一个复选框,标题为“显示有颜色的颜色”,根据颜色数组的选择过滤列表,并在未选中时显示ALL。

{
   "_id": "54d13c3f3c25d5d8123a1d62",
   "name": "Barry",
   "colours": ["239, 101, 128"]
},
{
   "_id": "54d13sfg5d5d8hgf6gg",
   "name": "John",
   "colours": []
},
{
   "_id": "34d13sfg5d5d4tt6g",
   "name": "Andrew",
   "colours": []
},
{
   "_id": "44d165d5d4t77t6g",
   "name": "Gary",
   "colours": ["25, 234, 22", "5, 100, 255"]
},

2 个答案:

答案 0 :(得分:10)

以下内容会让每个人都没有颜色:

<div ng-repeat="item in items | filter: { colours: '!' }">

再次否定它,让每个人都有颜色:

<div ng-repeat="item in items | filter: { colours: '!!' }">

演示: http://plnkr.co/edit/oIl3ohe0TLMWcQlTPuY5?p=preview

答案 1 :(得分:2)

我认为您使用控制器功能来测试颜色的存在 所以haml / coffeescript

%tr{"ng-repeat2 => "item in list | filter: hasColour(item)"}

和hasColour是一个控制器函数

 $scope.hasColour=  (item) ->
  item.colours.length > 0

未经考验我害怕