У меня есть таблица, созданная ngRepeat от переменной первая. По фильтру вместо first.id_second он выписывает second.name, и он отлично работает. Теперь я пытаюсь сортировать столбец first.id_second, и я хочу, чтобы он был отсортирован не по first.id_second, но по second.name. Это моя структура:Заказывающий фильтр AngularJSBy, заказывая одну переменную другой
var first = [{
"id": 0,
"id_second": "111"
},{
"id": 1,
"id_second": "222"
}]
var second = [{
"id_second": "111",
"name": "name1"
},{
"id_second": "222",
"name": "name2"
}]
Обычно в моем HTML я бы
ng-click="order('col_name')"
И контроллер
$scope.order = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
$scope.first = orderBy($scope.first, predicate, $scope.reverse);
};
var orderBy = $filter('orderBy');
Я не знаю, как фильтровать по свойству, которое из другой переменной. Я полагаю, что я должен написать собственный фильтр, но до сих пор он не был успешным.
Любые идеи? Thanx.
Просто предположение, почему не использовать lo-dash, с [_.sortBy] (https://lodash.com/docs/3.10.1#sortBy) вместо угловой службы '$ filter' - у нее больше гибкости? – MiTa
Я не люблю использовать дополнительные библиотеки только для одной «маленькой» вещи, в которой я нуждаюсь, особенно если это означает переписывание большей части кода, который уже имеет этот проект. – ljerka