Comment commander en AngularJS en utilisant la propriété Nested

C'est le json qui est généré à l'aide de PHP

[{"Sale":{"id":"1","customer_id":"1","amount":"15","created":"2014-05-17"}}] 

Faire un orderBy:id ne fonctionne évidemment pas. J'ai lu dans d'autres publications qu'une fonction orderBy doit être créée pour ce type de structure de données. Je ne peux pas créer la fonction. Quelqu'un peut-il me dire quel est le bon moyen d'aborder cela?

Ce type de manipulation de données J'aime les garder dans les objets angulaires appropriés et pour cette raison, je créerais mon filtre personnalisé, quelque chose comme:

 var sampleSource= [{"Sale":{"id":"8","customer_id":"1","amount":"15","created":"2014-05-17"}}, {"Sale":{"id":"5","customer_id":"6","amount":"15","created":"2015-05-17"}}]; var myApp = angular.module('myApp',[]); myApp.filter('myFilter', function() { return function(items) { items.sort(function(a,b){ if (parseInt(a.Sale.id) > parseInt(b.Sale.id)) return 1; if (parseInt(a.Sale.id) < parseInt(b.Sale.id)) return -1; return 0; }) }); 

Important: je recommande le filtre personnalisé car, en tant que préférence personnelle, je n'aime pas surcharger mes contrôleurs ou d'autres objets avec des tâches (code) que je peux séparer sur d'autres objets qui me donnent plus d'indépendance et un code plus propre (une des choses que j'aime Angulaire), mais en plus de cette préférence personnelle, je dirais que ce n'est pas la seule façon, mais si vous partagez mes raisons, j'espère que cela vous aidera.

Supposons que vous avez:

 $scope.sales = [{"Sale":{"id":"1"}},{"Sale":{"id":"2"}},{"Sale":{"id":"3"}}]; 

Pourquoi ne pas faire comme suit:

 <div ng-repeat="sale in sales | orderBy:'Sale.id':true"> {{ sale.Sale.id }} </div> 

Cela fonctionne bien avec mon cas. Peut être Angulaire ne l'a pas soutenue au moment où vous avez posé la question.