2015-04-10 4 views
0

У меня есть быстрый вопрос. У меня есть фильтр, где я передать массив и получить обратно массив:AngularJS: массив JSON от фильтра

Фильтр возвращает массив JSON, порожденную underscore.js библиотеки:

myApp.filter('theFilter', function() { 
     return function(items){ 
      return _.countBy(items, function(num) { 
       return num % 2 == 0 ? 'even': 'odd'; 
      }); 
     }; 
}); 

этого {{array | theFilter }} выводит только массив JSON как это: { {"even": 3, "odd": 5}}

Как я могу вывести значение, например, например?

Спасибо и наилучшими пожеланиями

+0

Может вам обеспечить ap Lunker ?? – Reena

+0

Вот plunkr [http://plnkr.co/edit/z3ppJZAZFmyXJqnUKmSN?p=preview](http://plnkr.co/edit/z3ppJZAZFmyXJqnUKmSN?p=preview) –

ответ

1

Я попробовал, он отлично работает

{{(items | theFilter).even}} 

worked plnkr

+0

Это помогло мне, спасибо! –

+0

Могли бы вы отметить это, как правильный ответ :) –

0
myApp.filter('theFilter', function() { 
    return function(items){ 
     return _.countBy(items, function(num) { 
      return num % 2 == 0 ? 'even': 'odd'; 
     }).even; 
    }; 
}); 
+0

это тоже работает :) –

0

Я думаю, что, может быть, вам нужно написать еще один фильтр:

myApp.filter('theFilter', function() { 
     return function(items){ 
      return _.countBy(items, function(num) { 
       return num % 2 == 0 ? 'even': 'odd'; 
      }); 
     }; 
}); 

myApp.filter('attr', function() { 
     return function(obj, attrName){ 
      return obj ? obj[attrName] : undefined; 
     }; 
}); 

{{array | theFilter | attr:'even'}} 
+0

хорошая идея, но не работает, спасибо в любом случае –

+0

@MarcoStandzettel http://plnkr.co/edit/oNK3v7CHhOKlXvXXZYju?p=preview вы можете попробовать – c4605

+0

Но я думаю, что решение @ huan-feng лучше :) – c4605

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