Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 63b9956

Browse files
Casey Howardpetebacondarwin
Casey Howard
authored andcommitted
fix(filterFilter): Fix filtering using an object expression when the filter value is undefined
Fixes #10419 Closes #10424
1 parent 92767c0 commit 63b9956

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/ng/filter/filter.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc
207207
} else if (expectedType === 'object') {
208208
for (key in expected) {
209209
var expectedVal = expected[key];
210-
if (isFunction(expectedVal)) {
210+
if (isFunction(expectedVal) || isUndefined(expectedVal)) {
211211
continue;
212212
}
213213

test/ng/filter/filterSpec.js

+9
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ describe('Filter: filter', function() {
4848
});
4949

5050

51+
it('should ignore undefined properties of the expression object', function() {
52+
var items = [{name: 'a'}, {name: 'abc'}];
53+
expect(filter(items, {name: undefined})).toEqual([{name: 'a'}, {name: 'abc'}]);
54+
55+
items = [{first: 'misko'}, {deep: {first: 'misko'}}, {deep: {last: 'hevery'}}];
56+
expect(filter(items, {deep: {first: undefined}})).toEqual([{deep: {first: 'misko'}}, {deep: {last: 'hevery'}}]);
57+
});
58+
59+
5160
it('should take function as predicate', function() {
5261
var items = [{name: 'a'}, {name: 'abc', done: true}];
5362
expect(filter(items, function(i) {return i.done;}).length).toBe(1);

0 commit comments

Comments
 (0)