From 6c85fb7bf1e7b1ca8d0dcf66a4496faf84291f0f Mon Sep 17 00:00:00 2001 From: "K.J. Valencik" Date: Fri, 6 Mar 2015 13:44:44 -0500 Subject: [PATCH] Allow ordering by expression as well as string --- README.md | 1 + angular-tree-control.js | 8 +++- test/angular-tree-control-test.js | 62 ++++++++++++++++--------------- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index c539836..bf3bd33 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ Attributes of angular treecontrol - `labelSelected` : inject classes into the div element around the label only when the node is selected - `order-by` : value for ng-repeat to use for ordering sibling nodes - `reverse-order` : whether or not to reverse the ordering of sibling nodes based on the value of `order-by` +- `order-by-expression` : Expression evaluated by ng-repeat to use for ordering sibling nodes - `filter-expression` : value for ng-repeat to use for filtering the sibling nodes - `filter-comparator` : value for ng-repeat to use for comparing nodes with the filter expression diff --git a/angular-tree-control.js b/angular-tree-control.js index e6aaaff..0d24cb3 100644 --- a/angular-tree-control.js +++ b/angular-tree-control.js @@ -36,6 +36,7 @@ onNodeToggle: "&", options: "=?", orderBy: "@", + orderByExpression: "=?", reverseOrder: "@", filterExpression: "=?", filterComparator: "=?" @@ -197,7 +198,12 @@ }; //tree template - var orderBy = $scope.orderBy ? ' | orderBy:orderBy:reverseOrder' : ''; + var orderBy = ''; + if ($scope.orderByExpression) { + orderBy = ' | orderBy:orderByExpression:reverseOrder'; + } else if ($scope.orderBy) { + orderBy = ' | orderBy:orderBy:reverseOrder'; + } var template = '