Angularjs ng-repeat with conditions
Angularjs ng-repeat with conditions
假设我有 10 个文章对象数组,每个对象都有自己的文章标题(假设其中一些具有相同的标题)
当我做 ng-repeat="文章中的艺术"和 {{ art.article_title }} 时,它会打印标题 10 次,这不是我想要的。
我想做类似的事情
标题-1:第一条第二条第三条
标题-2:第四条第5条......
如果文章共享相同的标题,则类似的东西。
谢谢
您应该编写一个自定义过滤器,然后您将能够像这样继续:
<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;
};
});
(我没有测试它,只是临时编写它作为快速示例,如果您的文章未按标题排序,您将不得不修改它)
也许重新思考它会有所帮助,理想的方法是重新排列您的对象,以便文章落在标题下,就像这样。
var arrangeArticles = function() {
var result = {};
angular.forEach($scope.articles, function( article ) {
var title = article.article_title;
if( !result[title] ) {
result[title] = [article];
} else {
result[title].push(article);
}
});
$scope.articles = result;
$scope.$apply(); // Might be needed
};
我认为你不能在ng-repeat
中做到这一点,用你表达的布局。
然后,您需要将重复更改为类似
<div ng-repeat="(title, group) in articles">
{{title}}
<div ng-repeat="article in group">
{{article.description}}
</div>
</div>
相关文章:
- Fighting with FRP
- issue with FB.Event.subscribe
- geolocation-marker.js conflict with markerclusterer.js
- Angular 2.0 with JavaScript or TypeScript?
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- WebComponentsJS with IE10
- 指令的模板必须只有一个根元素:With restrict E&替换true
- timeago.js with datatable and PHP
- Ajax and Json with Rails
- errors with Javascript try catch
- how to split a string with ','
- Understanding Javascript scope with "var that = this&qu
- Architecture for CPU intensive tasks with NodeJS & Socke
- How to declare a Map containing certain properties with flow
- 设置'这'在React with Inverse Data Flow中
- Unit-testing multiple use cases with Karma & Mocha.js
- Modify Javascript with C#
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- Using jQuery with classes from ES6
- Angularjs ng-repeat with conditions