カスタム filter を作成する必要があります。その後、次のように進めることができます。
<li ng-repeat="unique_article in articles|dedup">
{{unique_article.article_title}}
<span ng-repeat="related in unique_article.related">
Article {{related.id}}
</span>
</li>
たとえば、フィルタは次のようになります (記事がタイトルでソートされていると仮定します)。
.filter('dedup', function() {
return function(articles) {
var deduped = [];
var last_article = null;
for(var i=0,max=articles.length;i<max;i++) {
var article = articles[i];
if(!last_article || last_article.article_title !== article.article_title)
{
article.related = [];
deduped.push(article);
last_article = article;
} else {
last_article.related.push(article);
}
}
return deduped;
};
});
(私はそれをテストしませんでした。簡単な例としてアドホックに書いただけです。また、記事がタイトルでソートされていない場合は、変更する必要があります)