angularJS orderBy未反映在原始范围中



所以我有一个scope.data和我的对象数组。该数组的数据将显示在一个表中,它是orderedBy x属性。表中的显示效果很好,但scope.data对象本身并没有进行排序以反映表中显示的内容。。。有没有办法让这个对象也作为排序选项进行排序?

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

而不是

控制器:

$scope.data = [data array];

模板:

{{ data | orderBy:x }}

更改为

控制器:

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

模板:

{{ data }}

数据绑定

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

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

相关内容

最新更新