Angularjs 下一步中的订单项目重复项目的follow属性
如何将帖子排序为自上而下的结构(拥有最高Angularjs 下一步中的订单项目重复项目的follow属性,angularjs,angularjs-scope,angularjs-ng-repeat,angularjs-orderby,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angularjs Orderby,如何将帖子排序为自上而下的结构(拥有最高喜欢度编号的帖子将排在第一位,而拥有最低喜欢度编号的帖子将排在最后一位)。为此,我设置了oderBy:likes.length,但它不起作用。请帮忙,谢谢 function MyController($scope) { $scope.posts = [{"title": "AAtitle", "content":"AAcontent", "li
喜欢度
编号的帖子将排在第一位,而拥有最低喜欢度
编号的帖子将排在最后一位)。为此,我设置了oderBy:likes.length
,但它不起作用。请帮忙,谢谢
function MyController($scope) {
$scope.posts = [{"title": "AAtitle",
"content":"AAcontent",
"likes":["person1", "person2", "person3"]
},
{"title": "BBtitle",
"content":"BBcontent",
"likes":["person10"]
},
{"title": "CCtitle",
"content":"CCcontent",
"likes":["person10","person11", "person100", "person1", "person2"]
}
]
}
<div ng-controller = "MyController">
<ul>
<li ng-repeat = "post in posts | oderBy: likes.length">
<div> {{post.title}} </div>
<div> {{post.content}} </div>
<div> {{post.likes.length}} </div>
</li>
</ul>
</div>
函数MyController($scope){
$scope.posts=[{“title”:“AAtitle”,
“内容”:“AAcontent”,
“喜欢”:[“person1”、“person2”、“person3”]
},
{“标题”:“BBtitle”,
“内容”:“BBcontent”,
“喜欢”:[“person10”]
},
{“标题”:“CCtitle”,
“内容”:“内容”,
“喜欢”:[“person10”、“person11”、“person100”、“person1”、“person2”]
}
]
}
-
{{post.title}
{{post.content}
{{post.likes.length}
在视图中显示之前,您可以编写一个函数在控制器中进行排序。或者,您可以编写一个自定义过滤器
过滤器:
angular.module('YourAppName', [])
.filter('orderByLikes', function() {
function compare(a, b) {
return b.likes.length - a.likes.length;
}
return function (input) {
return input.sort(compare);
}
});
视图:
-
{{post.title}
{{post.content}
{{post.likes.length}
这是一份工作报告非常感谢!,非常有用我在将此筛选器应用于我的项目时遇到此错误
TypeError:cannotcallmethod“sort”of undefined
。是否有关于输入的注意事项
?将行
更改为
。它在JSFIDLE上工作,没有显式地将posts
传递给过滤器,因此我认为它也应该适用于您。告诉我它是否解决了问题,以便我可以更新答案。干杯
<div ng-controller = "MyController">
<ul>
<li ng-repeat = "post in posts | orderByLikes:posts">
<div> {{post.title}} </div>
<div> {{post.content}} </div>
<div> {{post.likes.length}} </div>
</li>
</ul>
</div>