首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ng-错误地重复自动排序

ng-错误地重复自动排序
EN

Stack Overflow用户
提问于 2015-05-30 23:26:08
回答 1查看 609关注 0票数 0

我知道在我目前版本的角形,ng-repeat自动排序。我的问题是,它的排序似乎不正确。

获取带有编号键的对象:

代码语言:javascript
运行
复制
{
    "1": "value",
    "2": "value",
    "10": "value"
}

ng-repeat把它分类为1102。我对这种排序很熟悉,在数字前面扔0应该能解决这个问题。但是,添加0需要额外的代码,因此需要去掉以供显示。

同样,转换为数组会导致ng-repeat循环所有空值(3-9),并创建多余的元素,并生成重复的错误。

如何使ng-repeat按键对对象排序,就像它们是整数一样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-31 03:03:30

我无法找到不改变数据结构的解决方案,但下面是一个示例,说明如何使用键将对象排序为数组。以下是html:

代码语言:javascript
运行
复制
<ul ng-controller="ExampleController">
  <li ng-repeat="item in filtered">{{ item.value }}</li>
</ul>

这是密码:

代码语言:javascript
运行
复制
  controller('ExampleController', ['$scope', function($scope) {
    $scope.list = {
      "1": "1 Value",
      "10": "10 Value",
      "5": "5 Value",
      "2": "2 Value"
    };

    $scope.$watch('list', function (newVal) {
       $scope.filtered = Object.keys(newVal).map(function (key) {
        return { key: key, value: newVal[key] };
      });
    });
  }]);

此代码的输出如下所示:

  • 1值
  • 2值
  • 5值
  • 10值

请注意,这会创建一个键/值对对象数组,使用起来更容易。下面是它工作的一个柱塞示例:http://plnkr.co/edit/Q0BYLeMzTZmd1k8VzTlQ?p=preview

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30552347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档