Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angularjs OrderBy对ng-repeat不工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用AngularJS我的第一个项目(一个锦标赛经理)和order-filter过滤器ng-repeat不工作:(我已经阅读所有的 documentation about that,但没有做:

所以,我有vars定义在$ scope像这样:

$scope.order_item = "count_win";
$scope.order_reverse = false;
$scope.teams = {
  100 : {
    id: 100,name: "XXX",count_win: 1,count_loose: 2,goal_average: 1,},200 : {
    id: 200,[...]
};

现在,在我的观点,我试图重新排序(首先只有一个订单项目,但从未工作…)

<tr ng-repeat="team in teams | orderBy:order_item:order_reverse">
   <td>{{team.namE}}</td>
   <td>{{team.count_loosE}}</td>
   <td>{{team.goal_averagE}}</td>
</tr>

第二次,我想从2条信息重新排序:count_win和goal_average如果第一个相等..我尝试替换$ scope.order_item像这样,但如果一个代码不工作,他永远不会工作与2 …

$scope.order_item = ['count_win','goal_average'];

谢谢大家阅读和遗憾的职位大小。

$ scope.teams不是一个数组(它是一个对象的对象),orderBy过滤器只适用于数组。如果你使$ scope.teams数组,它将工作:
$scope.teams = [
    {
      id: 100,name: "team1",count_win: 3,goal_average: 2,{
      id: 200,name: "team2",{
      id: 300,name: "team3",}
];

或者,您可以添加对对象工作的特殊过滤器,像这样(从here借用):

app.filter('orderObjectBy',function() {
  return function(items,field,reversE) {
    var filtered = [];
    angular.forEach(items,function(item) {
      filtered.push(item);
    });
    filtered.sort(function (a,b) {
      return (a[field] > b[field] ? 1 : -1);
    });
    if(reversE) filtered.reverse();
    return filtered;
  };
});

并使用它像这样:

<tr ng-repeat="team in teams | orderObjectBy:order_item:order_reverse">

请注意,此自定义过滤器将不会与排序顺序数组一起使用,如问题的第二部分所示。

大佬总结

以上是大佬教程为你收集整理的Angularjs OrderBy对ng-repeat不工作全部内容,希望文章能够帮你解决Angularjs OrderBy对ng-repeat不工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。