I have a dynamically changing orderBy filter in angular.
My HTML calls an updateOrder() method that takes a parameter 'date', 'value', 'seller.name', 'buyer.name', etc.:
<button type="button" ng-click="updateOrder('date')" class="btn btn-default navbar-btn">Date</button>
<button type="button" ng-click="updateOrder('value')" class="btn btn-default navbar-btn">Valuation</button>
<button type="button" ng-click="updateorder('seller.name')" class="btn btn-default navbar-btn">Alphabetical</button>
My updateOrder() method detects whether the order needs to be reversed and with what to order the list by:
$scope.order = 'date';
$scope.reverse = true;
let current = $scope.order;
$scope.updateOrder = function(order) {
console.log(order);
if(current === order) {
$scope.reverse = !$scope.reverse;
} else if(!$scope.reverse) {
$scope.reverse = true;
$scope.order = order;
current = order;
} else {
$scope.order = order;
current = order;
}
}
And then my ng-repeat div uses this order filter:
orderBy:order:reverse
For some reason, whenever I pass an argument with a dot (period), the filter fails and the order doesn't change. Due to other limitations, I would prefer not to change my database schema to not have subcategories (buyer.name, seller.name, etc.). Is there a way around this?