diff --git a/modules/@angular/common/src/forms-deprecated/directives/ng_form.ts b/modules/@angular/common/src/forms-deprecated/directives/ng_form.ts index 9072bacdc0..7e3e1a1c93 100644 --- a/modules/@angular/common/src/forms-deprecated/directives/ng_form.ts +++ b/modules/@angular/common/src/forms-deprecated/directives/ng_form.ts @@ -15,6 +15,8 @@ import {composeAsyncValidators, composeValidators, setUpControl, setUpControlGro export const formDirectiveProvider: any = /*@ts2dart_const*/ {provide: ControlContainer, useExisting: forwardRef(() => NgForm)}; +let _formWarningDisplayed: boolean = false; + /** * If `NgForm` is bound in a component, `
` elements in that component will be * upgraded to use the Angular form system. @@ -76,6 +78,7 @@ export const formDirectiveProvider: any = * * @experimental */ + @Directive({ selector: 'form:not([ngNoForm]):not([ngFormModel]),ngForm,[ngForm]', providers: [formDirectiveProvider], @@ -95,13 +98,21 @@ export class NgForm extends ControlContainer implements Form { @Optional() @Self() @Inject(NG_VALIDATORS) validators: any[], @Optional() @Self() @Inject(NG_ASYNC_VALIDATORS) asyncValidators: any[]) { super(); - console.warn(` + this._displayWarning(); + this.form = new ControlGroup( + {}, null, composeValidators(validators), composeAsyncValidators(asyncValidators)); + } + + private _displayWarning() { + // TODO(kara): Update this when the new forms module becomes the default + if (!_formWarningDisplayed) { + _formWarningDisplayed = true; + console.warn(` *It looks like you're using the old forms module. This will be opt-in in the next RC, and will eventually be removed in favor of the new forms module. For more information, see: https://docs.google.com/document/u/1/d/1RIezQqE4aEhBRmArIAS1mRIZtWFf6JxN_7B4meyWK0Y/pub `); - this.form = new ControlGroup( - {}, null, composeValidators(validators), composeAsyncValidators(asyncValidators)); + } } get submitted(): boolean { return this._submitted; } diff --git a/modules/@angular/common/src/forms-deprecated/directives/ng_form_model.ts b/modules/@angular/common/src/forms-deprecated/directives/ng_form_model.ts index 8c358b141c..d2d5ebc254 100644 --- a/modules/@angular/common/src/forms-deprecated/directives/ng_form_model.ts +++ b/modules/@angular/common/src/forms-deprecated/directives/ng_form_model.ts @@ -19,6 +19,8 @@ export const formDirectiveProvider: any = useExisting: forwardRef(() => NgFormModel) }; +let _formModelWarningDisplayed: boolean = false; + /** * Binds an existing control group to a DOM element. * @@ -93,6 +95,7 @@ export const formDirectiveProvider: any = * * @experimental */ + @Directive({ selector: '[ngFormModel]', providers: [formDirectiveProvider], @@ -113,11 +116,19 @@ export class NgFormModel extends ControlContainer implements Form, @Optional() @Self() @Inject(NG_VALIDATORS) private _validators: any[], @Optional() @Self() @Inject(NG_ASYNC_VALIDATORS) private _asyncValidators: any[]) { super(); - console.warn(` + this._displayWarning(); + } + + private _displayWarning() { + // TODO(kara): Update this when the new forms module becomes the default + if (!_formModelWarningDisplayed) { + _formModelWarningDisplayed = true; + console.warn(` *It looks like you're using the old forms module. This will be opt-in in the next RC, and will eventually be removed in favor of the new forms module. For more information, see: https://docs.google.com/document/u/1/d/1RIezQqE4aEhBRmArIAS1mRIZtWFf6JxN_7B4meyWK0Y/pub `); + } } ngOnChanges(changes: SimpleChanges): void {