From b4eed8ad94ce9719540462c1ee969dfd3c6b2355 Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Tue, 11 Feb 2014 09:57:04 -0500 Subject: feat(filterFilter): support deeply nested predicate objects Due to 339a165, it became impossible to filter nested properties of an object using the filterFilter. A proposed solution to this was to enable the use of nested predicate objects. This change enables the use of these nested predicate objects. Example: ```html
``` Or ```js $filter('filter')(items, { address: { country: 'Canuckistan' } }); ``` Closes #6215 Related to #6009 --- test/ng/filter/filterSpec.js | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test') diff --git a/test/ng/filter/filterSpec.js b/test/ng/filter/filterSpec.js index 0bb48704..7679136a 100644 --- a/test/ng/filter/filterSpec.js +++ b/test/ng/filter/filterSpec.js @@ -70,6 +70,17 @@ describe('Filter: filter', function() { }); + it('should support deep predicate objects', function() { + var items = [{person: {name: 'John'}}, + {person: {name: 'Rita'}}, + {person: {name: 'Billy'}}, + {person: {name: 'Joan'}}]; + expect(filter(items, {person: {name: 'Jo'}}).length).toBe(2); + expect(filter(items, {person: {name: 'Jo'}})).toEqual([ + {person: {name: 'John'}}, {person: {name: 'Joan'}}]); + }); + + it('should match any properties for given "$" property', function() { var items = [{first: 'tom', last: 'hevery'}, {first: 'adam', last: 'hevery', alias: 'tom', done: false}, -- cgit v1.2.3