angularjs - 在多维数组的 ng-repeat 上使用 orderBy

标签 angularjs multidimensional-array angular-filters angularjs-orderby

我有一个通过 websocket 传入的动态数据模型,如下所示:

var results = [
    [
        {name:'A'},
        {price: 0.00}
    ],
    [
        {name:'C'},
        {price: 0.00}
    ],
]

我正在使用我的 ng-repeat 如下:
ng-repeat="result in results"

每当我需要访问结果数组中的数组之一时,我会这样做:
result[0].name

我遇到的问题是 ngRepeat 上的 orderBy 过滤器似乎不允许我这样做:
ng-repeat="result in results | orderBy: result[0].name

也许这是对 Angular 工作原理的基本误解,但我不明白为什么这行不通。是语法不正确,还是因为我的数据模型是动态的?我应该在某处设置 $scope.$apply 吗?

我尝试过使用引号,并且尝试在最初解析数据的函数中设置一个谓词,将谓词设置为通过的每个 result.name 实例,但这也不起作用。

很感谢任何形式的帮助。

最佳答案

这个问题真的很有趣。由于 orderBy 将使用当前对象,因此您必须相对分配订单字符串。

这将解决问题:

ng-repeat="result in results | orderBy: 'this[0].name'

关于angularjs - 在多维数组的 ng-repeat 上使用 orderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076315/

相关文章:

javascript - 无法让 String.prototype 在工厂中工作

angularjs - 如何使用angularjs过滤表格中的数据

javascript - AngularJS ng-repeat Post Value 未使用 id 作为键获得正确的模式

PHP/拉拉维尔 : How to save a multidimensional array into the DB

Ruby:从二维数组中收集所有具有匹配元素的数组

PHP多维数组转换为表单

javascript - 我可以配置默认 Angular 过滤器来显示字符串,以便以搜索词开头的字符串排在前面吗?

javascript - 具有多个变量的 Angularjs ng-repeat 过滤器属性?

javascript - 如何从对象中获取ng-repeat中被点击的元素之一?

angularjs - 如何在 60 秒内从零开始使用数据移动 Web 应用程序