aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCaitlin Potter2014-02-05 23:50:58 -0500
committerCaitlin Potter2014-03-18 22:54:46 -0400
commit37bc5ef4d87f19da47d3ab454c43d1e532c4f924 (patch)
tree0beac055610fbdb39363ca4070d8d48a7b3c21c1 /src
parent3652831084c3788f786046b907a7361d2e89c520 (diff)
downloadangular.js-37bc5ef4d87f19da47d3ab454c43d1e532c4f924.tar.bz2
fix(orderBy): support string predicates containing non-ident characters
The orderBy filter now allows string predicates passed to the orderBy filter to make use property name predicates containing non-ident strings, such as spaces or percent signs, or non-latin characters. This behaviour requires the predicate string to be double-quoted. In markup, this might look like so: ```html <div ng-repeat="item in items | orderBy:'\"Tip %\"'"> ... </div> ``` Or in JS: ```js var sorted = $filter('orderBy')(array, ['"Tip %"', '-"Subtotal $"'], false); ``` Closes #6143 Closes #6144
Diffstat (limited to 'src')
-rw-r--r--src/ng/filter/orderBy.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ng/filter/orderBy.js b/src/ng/filter/orderBy.js
index b6262698..faeb8ed1 100644
--- a/src/ng/filter/orderBy.js
+++ b/src/ng/filter/orderBy.js
@@ -74,6 +74,12 @@ function orderByFilter($parse){
predicate = predicate.substring(1);
}
get = $parse(predicate);
+ if (get.constant) {
+ var key = get();
+ return reverseComparator(function(a,b) {
+ return compare(a[key], b[key]);
+ }, descending);
+ }
}
return reverseComparator(function(a,b){
return compare(get(a),get(b));