Проблема в том, что у меня есть массив объектов рецептов. У каждого объекта рецепта есть некоторые комментарии к нему. Я хочу сортировать массив в контроллере angularJS, используя службу $ filter, предоставляемую угловыми.AngularJS Custom Filter orderBy sortPredicate not working
$scope.recipes = $filter('orderBy')($scope.data, function(recipe) {
return recipe.comments.length;
});
Но это не дает требуемых результатов. Тем не менее, я смог добиться желаемых результатов с помощью функции массива сортировки JS, как этого
$scope.data.sort(function(a, b) {
if (a.comments.length < b.comments.length) return 1;
if (b.comments.length < a.comments.length) return -1;
return 0;
});
Plunkr для того же сценария является: http://plnkr.co/edit/L9Bt67xHRCJLBoWG8EZp?p=preview
Спасибо заранее. Пожалуйста помоги!
Спасибо. Но я хочу сделать это только в контроллере. Есть ли выход и для этого? –
Хорошо, я с тобой. Тогда да. Я добавил еще один ответ: поскольку оба ответа делают то же самое, другие могут найти это полезным. –