排序 Angular
Sorting in Angular
我正在使用 Angular 构建应用程序。
我有 JSON 从按日期排序的服务器返回。
我在视图中绑定到此数据。
用户可以更改视图中显示的数据。这将启动一个请求,并且视图在绑定到 JSON 数据更改时得到更新。
当 Angular 获取此 JSON 数据时,它会按字母顺序对其进行排序。
我想维护来自服务器的排序顺序。
我用谷歌搜索了一下,找到了以下解决方案...
<div ng-repeat="key in notSorted(myData)" ng-init="data = myData[key]">
"notSorted"是控制器上的一个函数...
$scope.notSorted = function(obj){
if (!obj) {
return [];
}
return Object.keys(obj);
}
这最初工作正常。数据以正确的顺序显示。
但是它打破了绑定。因此,当用户尝试更改正在显示的数据时,视图不会更新,因为 notSorted 看不到绑定更改。
我可以想出一些巧妙的方法来解决这个问题,例如手动触发更新,但我想以正确的 angular 方式进行。
有人知道那是什么吗?
谢谢
我相信你需要这个:
https://docs.angularjs.org/api/ng/filter/orderBy
它的工作原理是这样的:
<div ng-repeat="item in items | orderBy:'key'">
由于数据从服务器返回的方式以及我需要迭代该数据的方式,我无法获得任何 "orderBy" 或过滤器解决方案。
但是我发现在 Angular 1.4 中他们删除了默认顺序 (alphabetical/ascending) 以支持保留从服务器返回数据的顺序...
http://jaxenter.com/angular-releases-1-3-update-1-4-beta-113906.html
我使用的是 1.3.x 并简单地更新到 1.4 并且它可以运行 OOTB。
谢谢
我正在使用 Angular 构建应用程序。 我有 JSON 从按日期排序的服务器返回。 我在视图中绑定到此数据。
用户可以更改视图中显示的数据。这将启动一个请求,并且视图在绑定到 JSON 数据更改时得到更新。
当 Angular 获取此 JSON 数据时,它会按字母顺序对其进行排序。 我想维护来自服务器的排序顺序。
我用谷歌搜索了一下,找到了以下解决方案...
<div ng-repeat="key in notSorted(myData)" ng-init="data = myData[key]">
"notSorted"是控制器上的一个函数...
$scope.notSorted = function(obj){
if (!obj) {
return [];
}
return Object.keys(obj);
}
这最初工作正常。数据以正确的顺序显示。 但是它打破了绑定。因此,当用户尝试更改正在显示的数据时,视图不会更新,因为 notSorted 看不到绑定更改。
我可以想出一些巧妙的方法来解决这个问题,例如手动触发更新,但我想以正确的 angular 方式进行。 有人知道那是什么吗?
谢谢
我相信你需要这个: https://docs.angularjs.org/api/ng/filter/orderBy
它的工作原理是这样的:
<div ng-repeat="item in items | orderBy:'key'">
由于数据从服务器返回的方式以及我需要迭代该数据的方式,我无法获得任何 "orderBy" 或过滤器解决方案。 但是我发现在 Angular 1.4 中他们删除了默认顺序 (alphabetical/ascending) 以支持保留从服务器返回数据的顺序...
http://jaxenter.com/angular-releases-1-3-update-1-4-beta-113906.html
我使用的是 1.3.x 并简单地更新到 1.4 并且它可以运行 OOTB。
谢谢