2015-10-08 114 views
0

我很接近,但需要你的帮助。我正在尝试使循环遍历2个数组的过滤器,一个是文章列表,另一个是标签列表。Angular Filter - 返回第二个数组中每个对象的对象?

我想要发生的是如果我有3个标签“nyc”,“health-care”和“tech”,我希望包含所有三个标签的文章。我目前的代码返回任何包含任何3个标签的文章。

.filter('selectedTags', function() { 
    return function(articles, tags) { 
     return articles.filter(function(article) { 
      for (var i in article.article.tags) { 
       for (var t in tags) { 
        if (tags[t].text === article.article.tags[i].text) { 
         return true; 
        } 
       } 
      } 
      return false; 
     }); 
    }; 
}) 

回答

1

这应该工作..

.filter('selectedTags', function() { 
return function(articles, tags) { 
    return articles.filter(function(article) { 
     var count = 0; 
     for (var i in article.article.tags) { 
      for (var t in tags) { 
       if (tags[t].text === article.article.tags[i].text) { 
        count++; 
        if (count === tags.length){ 
        return true; 
        } 
       } 
      } 
     } 
     return false; 
    }); 
}; 
}) 
+0

奇怪。我有一个几乎相同的解决方案,它不工作。这似乎有伎俩。谢谢 – user1063192

相关问题