/** * @license * Copyright Google LLC 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: Example 2: `); } 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}`); } }