61 lines
1.9 KiB
TypeScript
61 lines
1.9 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {FormErrorExamples as Examples} from './error_examples';
|
|
|
|
export class TemplateDrivenErrors {
|
|
static modelParentException(): void {
|
|
throw new Error(`
|
|
ngModel cannot be used to register form controls with a parent formGroup directive. Try using
|
|
formGroup's partner directive "formControlName" instead. Example:
|
|
|
|
${Examples.formControlName}
|
|
|
|
Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:
|
|
|
|
Example:
|
|
|
|
${Examples.ngModelWithFormGroup}`);
|
|
}
|
|
|
|
static formGroupNameException(): void {
|
|
throw new Error(`
|
|
ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.
|
|
|
|
Option 1: Use formControlName instead of ngModel (reactive strategy):
|
|
|
|
${Examples.formGroupName}
|
|
|
|
Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):
|
|
|
|
${Examples.ngModelGroup}`);
|
|
}
|
|
|
|
static missingNameException() {
|
|
throw new Error(
|
|
`If ngModel is used within a form tag, either the name attribute must be set or the form
|
|
control must be defined as 'standalone' in ngModelOptions.
|
|
|
|
Example 1: <input [(ngModel)]="person.firstName" name="first">
|
|
Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">`);
|
|
}
|
|
|
|
static modelGroupParentException() {
|
|
throw new Error(`
|
|
ngModelGroup cannot be used with a parent formGroup directive.
|
|
|
|
Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):
|
|
|
|
${Examples.formGroupName}
|
|
|
|
Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):
|
|
|
|
${Examples.ngModelGroup}`);
|
|
}
|
|
}
|