在多维数组的 ng-repeat 上使用 orderBy
Using orderBy on ng-repeat with a multidimensional array
我有一个通过 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'
我有一个通过 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'