diff options
| author | Caitlin Potter | 2014-02-05 23:50:58 -0500 |
|---|---|---|
| committer | Tobias Bosch | 2014-03-21 13:05:29 -0700 |
| commit | 10d3e1e4472ab9f5cf4418b6438ec2e0f2b0b288 (patch) | |
| tree | 556cb6d3bcf8fab33063532b9aa16768e181f103 /src | |
| parent | 93d1c95c61dbfa565333bb64527a103242175af7 (diff) | |
| download | angular.js-10d3e1e4472ab9f5cf4418b6438ec2e0f2b0b288.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.js | 6 |
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)); |
