Skip to content

Commit 9d58f46

Browse files
committed
fix(forms): update compose to handle null validators
1 parent bb2b961 commit 9d58f46

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

modules/angular2/src/core/forms/validators.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import {isBlank, isPresent} from 'angular2/src/core/facade/lang';
2-
import {CONST_EXPR} from 'angular2/src/core/facade/lang';
1+
import {isBlank, isPresent, CONST_EXPR} from 'angular2/src/core/facade/lang';
32
import {ListWrapper, StringMapWrapper} from 'angular2/src/core/facade/collection';
43
import {OpaqueToken} from 'angular2/src/core/di';
54

@@ -81,7 +80,7 @@ export class Validators {
8180

8281
return function(control: modelModule.AbstractControl) {
8382
var res = ListWrapper.reduce(validators, (res, validator) => {
84-
var errors = validator(control);
83+
var errors = isPresent(validator) ? validator(control) : null;
8584
return isPresent(errors) ? StringMapWrapper.merge(<any>res, <any>errors) : res;
8685
}, {});
8786
return StringMapWrapper.isEmpty(res) ? null : res;

modules/angular2/test/core/forms/validators_spec.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ export function main() {
8282
var c = Validators.compose([Validators.nullValidator, Validators.nullValidator]);
8383
expect(c(new Control(""))).toEqual(null);
8484
});
85+
86+
it("should ignore nulls", () => {
87+
var c = Validators.compose([null, Validators.required]);
88+
expect(c(new Control(""))).toEqual({"required": true});
89+
});
8590
});
8691
});
8792
}

0 commit comments

Comments
 (0)