angularJS orderBy没有反映在原始范围内

时间:2013-02-21 00:11:50

标签: angularjs

所以我有一个带有我的对象数组的scope.data。该数组的数据显示在一个表中,并且它是orderedBy x属性。表中的显示效果很好但是scope.data对象的self不会被排序以反映表中显示的内容...有没有办法让该对象也排序为排序选项?

2 个答案:

答案 0 :(得分:3)

OrderBy不对作用域的变量进行排序,而是对其显示方式进行排序。如果您希望在$ scope中更改数组,则需要在javascript中对数组进行排序。

答案 1 :(得分:3)

您可以在控制器中应用过滤器,而不是将过滤器应用于模板中的scope.data:

而不是

控制器:

$scope.data = [data array];

模板:

{{ data | orderBy:x }}

更改为

控制器:

// Inject $filter into controller
$scope.data = $filter('orderBy')('x');

模板:

{{ data }}

数据绑定

如果传入了data数组,则可以通过设置监视功能来检查原始数组是否更改,然后自动应用于当前的$ scope.data属性来处理更新。