gpt4 book ai didi

javascript - 使用AngularJS的OrderBy循环列表进行按索引升序排序的导航

转载 作者:行者123 更新时间:2023-12-02 17:22:23 25 4
gpt4 key购买 nike

嗨,我如何命令 ng-repeat 将对象数组按照索引键升序排列为特定顺序。

$scope.paneContainer = {books:[{}] } ;  
$scope.paneContainer.books[0].science = { title:"science", content:"web/app/views/partials/science.html" };
$scope.paneContainer.books[0].alphabets = { title:"alphabets", content:"web/app/views/partials/alphabets.html" };
$scope.paneContainer.books[0].folks = { title:"folks", content:"web/app/views/partials/folks .html" };

然后在前端:

<ul class="ui-tabs-nav">
<li ng-repeat="tab in paneContainer.books[0] track by $index | orderBy:$index " class="">
<strong>{{tab.title}}</strong></a>
</li>
</ul>

期望的输出是:

  • 科学
  • 字母
  • 各位
  • 当前 Angular 按字母顺序对列表进行排序。

    最佳答案

    正如迈克所说,对象没有顺序。如果您出于某种原因不想将其更改为数组(这可能是最简单也是最好的选择),您可以向该对象添加一个 displayOrder 属性,然后使用过滤器按 displayOrder 对其进行排序。

    angular.module('app').filter('orderByDisplayOrder', function () {
    return function (obj) {
    var array = [];
    Object.keys(obj).forEach(function (key) {
    array.push(obj[key]);
    });
    array.sort(function (a, b) {
    return a.displayOrder - b.displayOrder;
    });
    return array;
    }
    });

    然后您可以使用该过滤器进行排序。

    <ul class="ui-tabs-nav">
    <li ng-repeat="tab in paneContainer.books[0] track by $index | orderByDisplayOrder" class="">
    <strong>{{tab.title}}</strong></a>
    </li>

    关于javascript - 使用AngularJS的OrderBy循环列表进行按索引升序排序的导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23815313/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com