2014-12-17 2 views
0

Прямо сейчас у меня есть массив сложных объектов, которые имеют объекты внутри объектов. Я пытаюсь использовать поле ввода для фильтрации списка (в 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/

Что помешало бы мне сделать это в большей структуре данных?

Редактировать Похоже, что это Угловая 1,3 вопрос. Он работал на 1.2, но когда я обновляю его до версии 1.3 (как и у моего приложения), он больше не работает. http://jsfiddle.net/7aeL2yd2/2/

+0

Ваш фильтр, кажется, отлично работает на вложенных объектах. – SoluableNonagon

+0

@SoluableNonagon: Здесь, но не в моем приложении, это то, что я не могу понять. Это по сути тот же код ... – m0ngr31

+0

@SoluableNonagon: Хорошо, поэтому я сделал тест с двумя моими объектами из моего приложения, и он отлично справился с этим кодом. Может ли функция фильтра просто не обрабатывать все вместе (19 000 строк разбора JSON), чтобы она не попала в вложенные объекты? – m0ngr31

ответ

2

Этот вопрос был поднят семь дней назад на GitHub:

fix(filterFilter): filter deep object by string

И это похоже на исправление для него было проверено 12 часов назад:

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

Я не «Я действительно знаю, как работает рабочий процесс AngularJS или как они выпускают совершенно новые версии, но, во всяком случае, похоже, что решение вашей проблемы уже в пути. В то же время, возможно, вы справитесь с версией 1.2?

+0

В итоге я написал свой собственный фильтр, но хорошо знать, что я не сумасшедший. Спасибо за указание на это. – m0ngr31

Смежные вопросы