fix(Validators): fix Validators.required marking number zero as invalid

Closes #6617
This commit is contained in:
ericmartinezr 2016-01-21 10:25:31 -03:00
parent 4bfe49cd42
commit c2ceb7fba4
2 changed files with 7 additions and 2 deletions

View File

@ -1,4 +1,4 @@
import {isBlank, isPresent, CONST_EXPR} from 'angular2/src/facade/lang'; import {isBlank, isPresent, CONST_EXPR, isString} from 'angular2/src/facade/lang';
import {PromiseWrapper} from 'angular2/src/facade/promise'; import {PromiseWrapper} from 'angular2/src/facade/promise';
import {ObservableWrapper} from 'angular2/src/facade/async'; import {ObservableWrapper} from 'angular2/src/facade/async';
import {ListWrapper, StringMapWrapper} from 'angular2/src/facade/collection'; import {ListWrapper, StringMapWrapper} from 'angular2/src/facade/collection';
@ -44,7 +44,9 @@ export class Validators {
* Validator that requires controls to have a non-empty value. * Validator that requires controls to have a non-empty value.
*/ */
static required(control: modelModule.Control): {[key: string]: boolean} { static required(control: modelModule.Control): {[key: string]: boolean} {
return isBlank(control.value) || control.value == "" ? {"required": true} : null; return isBlank(control.value) || (isString(control.value) && control.value == "") ?
{"required": true} :
null;
} }
/** /**

View File

@ -35,6 +35,9 @@ export function main() {
it("should not error on a non-empty string", it("should not error on a non-empty string",
() => { expect(Validators.required(new Control("not empty"))).toEqual(null); }); () => { expect(Validators.required(new Control("not empty"))).toEqual(null); });
it("should accept zero as valid",
() => { expect(Validators.required(new Control(0))).toEqual(null); });
}); });
describe("minLength", () => { describe("minLength", () => {