Navigation Menu

Skip to content

Commit

Permalink
fix(forms): fix conflicting getter name (#11081)
Browse files Browse the repository at this point in the history
  • Loading branch information
kara authored and vicb committed Aug 25, 2016
1 parent cbe0976 commit ce08982
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 8 deletions.
6 changes: 3 additions & 3 deletions modules/@angular/forms/src/directives/ng_model.ts
Expand Up @@ -65,7 +65,7 @@ export class NgModel extends NgControl implements OnChanges,
viewModel: any;

@Input() name: string;
@Input() disabled: boolean;
@Input('disabled') isDisabled: boolean;
@Input('ngModel') model: any;
@Input('ngModelOptions') options: {name?: string, standalone?: boolean};

Expand All @@ -83,7 +83,7 @@ export class NgModel extends NgControl implements OnChanges,
ngOnChanges(changes: SimpleChanges) {
this._checkForErrors();
if (!this._registered) this._setUpControl();
if ('disabled' in changes) {
if ('isDisabled' in changes) {
this._updateDisabled(changes);
}

Expand Down Expand Up @@ -160,7 +160,7 @@ export class NgModel extends NgControl implements OnChanges,
}

private _updateDisabled(changes: SimpleChanges) {
const disabledValue = changes['disabled'].currentValue;
const disabledValue = changes['isDisabled'].currentValue;
const isDisabled = disabledValue != null && disabledValue != false;

resolvedPromise.then(() => {
Expand Down
Expand Up @@ -82,7 +82,7 @@ export class FormControlDirective extends NgControl implements OnChanges {
@Output('ngModelChange') update = new EventEmitter();

@Input('disabled')
set disabled(isDisabled: boolean) { ReactiveErrors.disabledAttrWarning(); }
set isDisabled(isDisabled: boolean) { ReactiveErrors.disabledAttrWarning(); }

constructor(@Optional() @Self() @Inject(NG_VALIDATORS) private _validators:
/* Array<Validator|Function> */ any[],
Expand Down
Expand Up @@ -106,7 +106,7 @@ export class FormControlName extends NgControl implements OnChanges, OnDestroy {
@Input('ngModel') model: any;
@Output('ngModelChange') update = new EventEmitter();
@Input('disabled')
set disabled(isDisabled: boolean) { ReactiveErrors.disabledAttrWarning(); }
set isDisabled(isDisabled: boolean) { ReactiveErrors.disabledAttrWarning(); }

constructor(
@Optional() @Host() @SkipSelf() private _parent: ControlContainer,
Expand Down
12 changes: 12 additions & 0 deletions modules/@angular/forms/test/directives_spec.ts
Expand Up @@ -325,6 +325,8 @@ export function main() {
expect(form.untouched).toBe(formModel.untouched);
expect(form.statusChanges).toBe(formModel.statusChanges);
expect(form.valueChanges).toBe(formModel.valueChanges);
expect(form.disabled).toBe(formModel.disabled);
expect(form.enabled).toBe(formModel.enabled);
});

describe('addControl & addFormGroup', () => {
Expand Down Expand Up @@ -401,6 +403,8 @@ export function main() {
expect(controlGroupDir.untouched).toBe(formModel.untouched);
expect(controlGroupDir.statusChanges).toBe(formModel.statusChanges);
expect(controlGroupDir.valueChanges).toBe(formModel.valueChanges);
expect(controlGroupDir.disabled).toBe(formModel.disabled);
expect(controlGroupDir.enabled).toBe(formModel.enabled);
});
});

Expand All @@ -427,6 +431,8 @@ export function main() {
expect(formArrayDir.dirty).toBe(formModel.dirty);
expect(formArrayDir.touched).toBe(formModel.touched);
expect(formArrayDir.untouched).toBe(formModel.untouched);
expect(formArrayDir.disabled).toBe(formModel.disabled);
expect(formArrayDir.enabled).toBe(formModel.enabled);
});
});

Expand All @@ -446,6 +452,8 @@ export function main() {
expect(controlDir.untouched).toBe(control.untouched);
expect(controlDir.statusChanges).toBe(control.statusChanges);
expect(controlDir.valueChanges).toBe(control.valueChanges);
expect(controlDir.disabled).toBe(control.disabled);
expect(controlDir.enabled).toBe(control.enabled);
};

beforeEach(() => {
Expand Down Expand Up @@ -499,6 +507,8 @@ export function main() {
expect(ngModel.untouched).toBe(control.untouched);
expect(ngModel.statusChanges).toBe(control.statusChanges);
expect(ngModel.valueChanges).toBe(control.valueChanges);
expect(ngModel.disabled).toBe(control.disabled);
expect(ngModel.enabled).toBe(control.enabled);
});

it('should throw when no value accessor with named control', () => {
Expand Down Expand Up @@ -557,6 +567,8 @@ export function main() {
expect(controlNameDir.untouched).toBe(formModel.untouched);
expect(controlNameDir.statusChanges).toBe(formModel.statusChanges);
expect(controlNameDir.valueChanges).toBe(formModel.valueChanges);
expect(controlNameDir.disabled).toBe(formModel.disabled);
expect(controlNameDir.enabled).toBe(formModel.enabled);
});
});
});
Expand Down
6 changes: 3 additions & 3 deletions tools/public_api_guard/forms/index.d.ts
Expand Up @@ -222,8 +222,8 @@ export declare class FormControl extends AbstractControl {
export declare class FormControlDirective extends NgControl implements OnChanges {
asyncValidator: AsyncValidatorFn;
control: FormControl;
disabled: boolean;
form: FormControl;
isDisabled: boolean;
model: any;
path: string[];
update: EventEmitter<{}>;
Expand All @@ -238,8 +238,8 @@ export declare class FormControlDirective extends NgControl implements OnChanges
export declare class FormControlName extends NgControl implements OnChanges, OnDestroy {
asyncValidator: AsyncValidatorFn;
control: FormControl;
disabled: boolean;
formDirective: any;
isDisabled: boolean;
model: any;
name: string;
path: string[];
Expand Down Expand Up @@ -390,8 +390,8 @@ export declare class NgForm extends ControlContainer implements Form {
export declare class NgModel extends NgControl implements OnChanges, OnDestroy {
asyncValidator: AsyncValidatorFn;
control: FormControl;
disabled: boolean;
formDirective: any;
isDisabled: boolean;
model: any;
name: string;
options: {
Expand Down

1 comment on commit ce08982

@marcalj
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do we configure disabled state with model-driven forms? (ReactiveFormsModule) Thanks!

Please sign in to comment.