【问题标题】:Angular: ng-repeat reverse order of objectAngular:ng-repeat对象的反向顺序
【发布时间】:2017-01-02 04:07:00
【问题描述】:

过滤器

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;
  };
});

数据 JSON:

{
  "results": {
    "100": {
      "numbers": {
        "1": {
          "key": "value"
        },
        "2": {
          "key": "value"
        },
        "3": {
          "key": "value"
        }
      }
    },
    "200": {
      "numbers": {
        "1": {
          "key": "value"
        },
        "2": {
          "key": "value"
        },
        "3": {
          "key": "value"
        }
      }
    }
  }
}

渲染:

<div ng-repeat="(k,v) in results">
  <span ng-repeat="(k1,v1) in v | orderObjectBy:k1:true">{{k1}}</span>
</div>

orderObjectBy:k1:true 不返回“键”,而是返回键的数组,例如0 1 2。我该如何解决这个问题并颠倒顺序?

【问题讨论】:

  • 您可以直接使用angular中可用的反向过滤器。
  • @ShankarShastri 请查看问题中的更新。提前致谢。 :)

标签: javascript angularjs


【解决方案1】:

你可以试试这个

ng-repeat='item in items| orderBy:item.key:reverse'

或者可能是

ng-repeat='item in items.reverse()'

【讨论】:

  • 我会选择第一个选项;通常不鼓励使用函数调用作为 ngRepeat 的来源。
  • @ShankarShastri @HarrisWeinstein 我尝试了ng-repeat="(key, value) in obj | orderBy:key:reverse",但收到错误angular.js:13550 Error: [orderBy:notarray]。请记住,我们是在对象而不是数组上尝试此操作。如果我像ng-repeat="(key, value) in obj | toArray:true | orderBy:key:reverse" 一样添加toArray:true,则会收到错误消息:TypeError: Object.defineProperty called on non-object。有什么想法吗?
  • @ShankarShastri 更新了我的问题。
  • 请更新正确的 JSON。您可以在此处测试您的 JSON。 json.parser.online.fr
  • @ShankarShastri 经过更多的研究和思考,再次更新了问题。有什么想法吗?
【解决方案2】:

在我的自行车 CMS(其中自行车是 obj)中,我想反转自行车列表

这就是我反转的方式:

<tr ng-repeat="bike in bikes | orderBy: '-' ">

我希望对某人有所帮助:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多