typescript - No hay ninguna directiva con "exportAs" establecida en "ngModel" en Angular
En realidad estoy trabajando en un formulario y estoy haciendo las validaciones de cada campo. pero hay un problema. mi bloque del archivo component.html se ve así,
<div class="field"style="padding:1%">
<label>Pacs name</label>
<input
name ="name"
type="text"
[(ngModel)]="pacs.name"
formControlName="pacName"
required
pattern="[a-zA-Z][a-zA-Z ]+"
#name="ngModel"
>
</div>
Este es el campo en el que estoy trabajando, pero cuando estoy usando #name="ngModel" estoy obteniendo este error en el navegador.
no hay ninguna directiva con "exportAs" configurada como "ngModel"
Coloqué FormsModule en el archivo module.ts respectivo. y mis importaciones respectivas en el archivo component.ts se ven así.
import { Component, OnInit,Directive, forwardRef,
Attribute,OnChanges, SimpleChanges,Input } from '@angular/core';
import { FormsModule, ReactiveFormsModule,NG_VALIDATORS,Validator,
AbstractControl,ValidatorFn } from '@angular/forms';
import { FormBuilder, FormGroup,FormControl, Validators, Form, NgForm} from '@angular/forms';
Creo que podría haber un problema de versiones.
así que mis versiones son, Angular CLI: 1.7.0 Node: 6.11.4 SO: linux x64
¿Alguien podría ayudarme, por favor? No entiendo dónde está el problema exacto.
Respuesta #1
Por un lado, usas la API reactiva vinculando este control a la propiedad de modelo creada explícitamente desde tu código TS: formControlName="pacName". Por otro lado, estás intentando enlazar al modelo implícito nunca creado desde la API basada en plantillas: #name="ngModel" y name="name".
En la API basada en plantillas podrías hacer algo como esto:
<input type="text" name="username" ngModel #name="ngModel">
Solo elimina #name="ngModel" y name="name" de tu código.
Respuesta #2
Si quieres hacer referencia a tu elemento de entrada en un componente, es decir, un control personalizado/control hijo, entonces puedes darle un nombre de referencia con #nombredecontrol
Revisa esta respuesta: ¿cuál es la diferencia entre #name y [(ngModel)]="name" en un input de formulario de Angular2?
