5

我有一个通过 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 的每个实例,但这也不起作用。

很感谢任何形式的帮助。

4

1 回答 1

10

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

这可以解决问题:

ng-repeat="result in results | orderBy: 'this[0].name'
于 2015-01-21T21:10:28.573 回答