feat(forms): add invalid prop to abstract controls (#10439)

This commit is contained in:
Kara 2016-08-01 18:41:25 -07:00 committed by GitHub
parent 3e377f520e
commit e0eea6c2f4
4 changed files with 23 additions and 1 deletions

View File

@ -27,6 +27,10 @@ export abstract class AbstractControlDirective {
get valid(): boolean { return isPresent(this.control) ? this.control.valid : null; }
get invalid(): boolean { return isPresent(this.control) ? this.control.invalid : null; }
get pending(): boolean { return isPresent(this.control) ? this.control.pending : null; }
get errors(): {[key: string]: any} {
return isPresent(this.control) ? this.control.errors : null;
}

View File

@ -83,7 +83,6 @@ export abstract class AbstractControl {
private _parent: FormGroup|FormArray;
private _asyncValidationSubscription: any;
constructor(public validator: ValidatorFn, public asyncValidator: AsyncValidatorFn) {}
get value(): any { return this._value; }
@ -92,6 +91,8 @@ export abstract class AbstractControl {
get valid(): boolean { return this._status === VALID; }
get invalid(): boolean { return this._status === INVALID; }
/**
* Returns the errors of this control.
*/

View File

@ -151,6 +151,8 @@ export function main() {
expect(form.control).toBe(formModel);
expect(form.value).toBe(formModel.value);
expect(form.valid).toBe(formModel.valid);
expect(form.invalid).toBe(formModel.invalid);
expect(form.pending).toBe(formModel.pending);
expect(form.errors).toBe(formModel.errors);
expect(form.pristine).toBe(formModel.pristine);
expect(form.dirty).toBe(formModel.dirty);
@ -318,6 +320,8 @@ export function main() {
expect(form.control).toBe(formModel);
expect(form.value).toBe(formModel.value);
expect(form.valid).toBe(formModel.valid);
expect(form.invalid).toBe(formModel.invalid);
expect(form.pending).toBe(formModel.pending);
expect(form.errors).toBe(formModel.errors);
expect(form.pristine).toBe(formModel.pristine);
expect(form.dirty).toBe(formModel.dirty);
@ -392,6 +396,8 @@ export function main() {
expect(controlGroupDir.control).toBe(formModel);
expect(controlGroupDir.value).toBe(formModel.value);
expect(controlGroupDir.valid).toBe(formModel.valid);
expect(controlGroupDir.invalid).toBe(formModel.invalid);
expect(controlGroupDir.pending).toBe(formModel.pending);
expect(controlGroupDir.errors).toBe(formModel.errors);
expect(controlGroupDir.pristine).toBe(formModel.pristine);
expect(controlGroupDir.dirty).toBe(formModel.dirty);
@ -418,6 +424,8 @@ export function main() {
expect(formArrayDir.control).toBe(formModel);
expect(formArrayDir.value).toBe(formModel.value);
expect(formArrayDir.valid).toBe(formModel.valid);
expect(formArrayDir.invalid).toBe(formModel.invalid);
expect(formArrayDir.pending).toBe(formModel.pending);
expect(formArrayDir.errors).toBe(formModel.errors);
expect(formArrayDir.pristine).toBe(formModel.pristine);
expect(formArrayDir.dirty).toBe(formModel.dirty);
@ -433,6 +441,8 @@ export function main() {
expect(controlDir.control).toBe(control);
expect(controlDir.value).toBe(control.value);
expect(controlDir.valid).toBe(control.valid);
expect(controlDir.invalid).toBe(control.invalid);
expect(controlDir.pending).toBe(control.pending);
expect(controlDir.errors).toBe(control.errors);
expect(controlDir.pristine).toBe(control.pristine);
expect(controlDir.dirty).toBe(control.dirty);
@ -484,6 +494,8 @@ export function main() {
expect(ngModel.control).toBe(control);
expect(ngModel.value).toBe(control.value);
expect(ngModel.valid).toBe(control.valid);
expect(ngModel.invalid).toBe(control.invalid);
expect(ngModel.pending).toBe(control.pending);
expect(ngModel.errors).toBe(control.errors);
expect(ngModel.pristine).toBe(control.pristine);
expect(ngModel.dirty).toBe(control.dirty);
@ -540,6 +552,8 @@ export function main() {
expect(controlNameDir.control).toBe(formModel);
expect(controlNameDir.value).toBe(formModel.value);
expect(controlNameDir.valid).toBe(formModel.valid);
expect(controlNameDir.invalid).toBe(formModel.invalid);
expect(controlNameDir.pending).toBe(formModel.pending);
expect(controlNameDir.errors).toBe(formModel.errors);
expect(controlNameDir.pristine).toBe(formModel.pristine);
expect(controlNameDir.dirty).toBe(formModel.dirty);

View File

@ -5,6 +5,7 @@ export declare abstract class AbstractControl {
errors: {
[key: string]: any;
};
invalid: boolean;
pending: boolean;
pristine: boolean;
root: AbstractControl;
@ -61,7 +62,9 @@ export declare abstract class AbstractControlDirective {
errors: {
[key: string]: any;
};
invalid: boolean;
path: string[];
pending: boolean;
pristine: boolean;
statusChanges: Observable<any>;
touched: boolean;