嵌套对象过滤 - Angular

时间:2014-12-17 17:32:16

标签: javascript angularjs angular-filters

现在我有一组复杂的对象,它们在对象中有对象。我尝试使用输入字段来过滤列表(在ng-repeat中),但出于某种原因,我只能从顶层获得结果。

[
  {
    "id": 1,
    "guid": "a97f722e-cef4-a125-351b-77c281c88556",
    "groups": [
      {
        "name": "Another Test",
        "id": 1
      },
      {
        "name": "Angular",
        "id": 9
      }
    ],
    "addresses": [
      {
        street: "123 Test Ave",
        city: "New York",
        state: "New York"
      }
    ]
  },
  {
    "id": 2,
    "guid": "a97fbbbb-cccc-a125-351b-77c281c88556",
    "groups": [
      {
        "name": "Garbage",
        "id": 2,
        "stuff": [
          {
            "name": "Dennis",
            "anothernest": [
              {
                "test": "Bob"
              },
              {
                "test": "Bob2"
              }
            ]
          }
        ]
      },
      {
        "name": "Test",
        "id": 7
      }
    ],
    "addresses": [
      {
        "street": "345 Test Ave",
        "city": "Los Angeles",
        "state": "California"
      }
    ]
  }
]

这是一种类似的结构(尽管是简化的)。出于某种原因,虽然基于搜索过滤任何这些嵌套对象都没有问题:http://jsfiddle.net/7aeL2yd2/

什么会阻止我在更大的数据结构上这样做?

修改 看起来它是一个Angular 1.3问题。它适用于1.2,但当我将其升级到1.3(就像我的应用程序一样)时,它不再有效。 http://jsfiddle.net/7aeL2yd2/2/

1 个答案:

答案 0 :(得分:2)

这个问题是七天前在GitHub上提出的:

fix(filterFilter): filter deep object by string

它看起来像是在12小时前检查过它:

fix(filterFilter): make $ match properties on deeper levels as well

我真的不知道AngularJS的构建工作流程是如何工作的,或者他们如何发布全新版本,但无论如何,看起来你的问题的解决方案正在酝酿之中。与此同时,也许你可以使用版本1.2?