2014-12-26 2 views
0

Я пытался получить количество элементов, которые имеют определенное текстовое соответствие для определенного поля, но мне не повезло.AngularJS получить длину, фильтруя свойство третьего уровня

Ссылка ниже - это самый близкий пример, который я смог реализовать, но все, что я могу вернуть, это общее количество записей в таблице. Angular Count Filtered Data

Когда я ввожу {{data.length}} в представление, он возвращает общее количество записей. Но когда я могу изменить его для запроса суб-поле {{(data|filter:{team:'A'}).length}} или {{(data|filter:{custom_fields.team:'A'}).length}} она возвращает 0.

[{ 
    "id": 1, 
    "custom_fields": { 
     "team": ["A"] 
    } 
},{ 
    "id": 2, 
    "custom_fields": { 
     "team": ["B"] 
    }, 
},{ 
    "id": 3, 
    "custom_fields": { 
     "team": ["A"] 
    } 
}] 

Любые мысли или предложения?

+0

Попробуйте '{{(data | filter: {custom_fields: {команда: 'A'}}). Length}}' –

+0

Спасибо за помощь, но это дает мне синтаксическую ошибку – TheIntrepidSpiff

+0

Если я использую поле ввода как: {{(data | filter: search) .length}} Он возвращает правильную длину, но я хочу, чтобы подсчеты загружались без ввода чего-либо в поле ввода – TheIntrepidSpiff

ответ

2

Вы можете сделать это с помощью фильтрации вложенных объектов:

{{(data|filter:{custom_fields: {team: ['A']} }).length}} 

Demo.

+0

Спасибо! Я провел слишком много времени, и ты спас меня еще больше! – TheIntrepidSpiff

+0

@ пользователь1981542 приветствуется. –

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