Tengo el siguiente error al iniciar mi aplicación Angular, incluso si el componente no se muestra.
Tengo que comentar <input>
para que mi aplicación funcione.
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
<div>
<label>Created:</label>
<input type="text" [ERROR ->][(ngModel)]="test" placeholder="foo" />
</div>
</div>"): InterventionDetails@4:28 ; Zone: <root> ; Task: Promise.then ; Value:
Estoy mirando el plunker Hero, pero no veo ninguna diferencia con respecto a mi código.
Aquí está el archivo componente:
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Intervention } from '../../model/intervention';
@Component({
selector: 'intervention-details',
templateUrl: 'app/intervention/details/intervention.details.html',
styleUrls: ['app/intervention/details/intervention.details.css']
})
export class InterventionDetails
{
@Input() intervention: Intervention;
public test : string = "toto";
}
javascript
angular
typescript
input
Anthony Brenelière
fuente
fuente
Respuestas:
Sí, eso es todo, en app.module.ts, acabo de agregar:
fuente
[{ngModel}]
lugar del correcto:[(ngModel)]
component.spec.ts
archivo.Para poder utilizar el enlace de datos bidireccional para entradas de formulario, debe importar el
FormsModule
paquete en suAngular
módulo. Para obtener más información, consulte elAngular 2
tutorial oficial aquí y la documentación oficial de los formularios.fuente
import { FORM_DIRECTIVES } from '@angular/forms';
y agregué lasFORM_DIRECTIVES
directivas a y sí, mi enlace está funcionando nuevamente (para que quede claro que estaba funcionando antes del lanzamiento de rc5)FORM_DIRECTIVES
están muertos por si acasoPara usar
[(ngModel)]
en Angular 2 , 4 y 5+ , debe importar FormsModule de forma angular ...También está en este camino bajo formas en repositorio angular en github :
Probablemente esto no sea un gran placer para los desarrolladores de AngularJs, ya que podría usar ng-model en todas partes en cualquier momento antes, pero como Angular intenta separar los módulos para usar lo que quiera usar en ese momento, ngModel está en FormsModule ahora .
Además, si está utilizando ReactiveFormsModule, también debe importarlo.
Así que simplemente busca app.module.ts y asegúrate de haber
FormsModule
importado en ...Además, estos son los comentarios iniciales actuales para Angular4
ngModel
en FormsModule :Si desea utilizar su entrada, no en una forma, que se puede utilizar con
ngModelOptions
y hacer independiente cierto ...Para más información, mira ng_model en la sección angular aquí
fuente
Necesita importar el FormsModule
Abra app.module.ts
y agrega línea
y
fuente
Lanzar esto podría ayudar a alguien.
Suponiendo que haya creado un nuevo NgModule, digamos
AuthModule
dedicado a la manipulación de sus necesidades de autenticación, asegúrese de importarFormsModule
en que AuthModule demasiado .Si va a utilizar
FormsModule
ÚNICAMENTE en el,AuthModule
entonces no necesitaría importar elFormModule
IN por defectoAppModule
Entonces algo como esto en
AuthModule
:Entonces olvídate de importar
AppModule
si no usas elFormsModule
otro lugar.fuente
Ejemplo 1
Ejemplo 2
fuente
Importe el FormsModule en los módulos en los que desea usar el [(ngModel)]
fuente
Hay dos pasos que debe seguir para deshacerse de este error
básicamente app.module.ts debería verse a continuación:
Espero eso ayude
fuente
Debe importar FormsModule en su módulo raíz si este componente está en la raíz, es decir, app.module.ts
Abra amablemente app.module.ts
Importar FormsModule desde @ angular / forms
Ex:
y
fuente
Estoy usando Angular 7
Tengo que importar ReactiveFormsModule porque estoy usando la clase FormBuilder para crear un formulario reactivo.
fuente
importa FormsModule en tu módulo de aplicación.
permitiría que su aplicación funcione bien.
fuente
Si es necesario utilizar
[(ngModel)]
primero hacer lo necesario para importarFormsModule
enapp.module.ts
y luego añadir en una lista de las importaciones. Algo como esto:app.module.ts
import {FormsModule} from "@angular/forms";
imports: [ BrowserModule, FormsModule ],
app.component.ts
<input type="text" [(ngModel)]="name" >
<h1>your name is: {{name}} </h1>
fuente
ngModel es la parte de FormsModule. Y debe importarse desde @ angular / forms para trabajar con ngModel.
Cambie app.module.ts de la siguiente manera:
fuente
Si alguien sigue recibiendo errores después de aplicar la solución aceptada, podría deberse a que tiene un archivo de módulo separado para el componente en el que desea utilizar la propiedad ngModel en la etiqueta de entrada. En ese caso, aplique la solución aceptada en el archivo module.ts del componente también.
fuente
Estoy usando Angular 5.
En mi caso, también necesitaba importar RactiveFormsModule.
app.module.ts (o anymodule.module.ts)
fuente
ReactiveFormsModule
es necesario cuando lo necesita,FormGroup, FormControl ,Validators
etc. Para usarlongModel
, no es necesarioReactiveFormsModule
.Sé que esta pregunta es sobre Angular 2, pero estoy en Angular 4 y ninguna de estas respuestas me ayudó.
En Angular 4, la sintaxis debe ser
Espero que esto ayude.
fuente
si aún recibe el error después de importar FormsModule correctamente, luego verifique su terminal o (consola de Windows) porque su proyecto no se está compilando (debido a otro error que podría ser cualquier cosa) y su solución no se ha reflejado en su navegador.
En mi caso, mi consola tenía el siguiente error no relacionado: la propiedad 'retrieveGithubUser' no existe en el tipo 'ApiService'.
fuente
En el módulo que está dispuesto a usar ngModel , debe importar FormsModule
fuente
ngModel proviene de FormsModule. Hay algunos casos en los que puede recibir este tipo de error:
(En alguna versión me enfrenté a este problema). Ha importado correctamente el FormsModule pero el problema está en la etiqueta HTML de entrada. Debe agregar el atributo de etiqueta de nombre para la entrada y el nombre vinculado al objeto en [(ngModel)] debe ser el mismo que el nombre en el atributo de nombre
fuente
En
ngModule
lo que necesita para importarFormsModule
, porquengModel
está viniendo deFormsModule
. Modifique su app.module.ts como el siguiente código que he compartidofuente
importar FormModule a app.module
fuente
fuente
A veces aparece este error cuando intenta utilizar un componente de un módulo, que no se comparte, en un módulo diferente.
Por ejemplo, tiene 2 módulos con module1.componentA.component.ts y module2.componentC.component.ts e intenta usar el selector de module1.componentA.component.ts en una plantilla dentro del módulo2 (por ejemplo
<module1-componentA [someInputVariableInModule1]="variableFromHTTPRequestInModule2">
), arrojará el error de que someInputVariableInModule1 no está disponible dentro de module1.componentA.component.ts, a pesar de que tiene@Input() someInputVariableInModule1
el módulo1.componentA.Si esto sucede, desea compartir el module1.componentA para que sea accesible en otros módulos. Entonces, si comparte el module1.componentA dentro de un SharedModule, el module1.componentA se podrá usar dentro de otros módulos (fuera del módulo1), y cada módulo que importe el sharedModule podrá acceder al selector en sus plantillas inyectando la
@Input()
variable declarada.fuente
Para mi escenario, tuve que importar [CommonModule] y [FormsModule] a mi módulo
fuente
Necesita importar el FormsModule
Abra app.module.ts
y agrega línea
y
fuente
A veces, si ya estamos importados
BrowserModule
,FormsModule
y otros módulos relacionados, aunque recibí el mismo error, me di cuenta de que necesitamos importarlos en orden , en mi caso lo perdí. Así que el fin debe ser comoBrowserModule
,FormsModule
,ReactiveFormsModule
.Espero que esto ayude a alguien .. :)
fuente
Esto es para las personas que usan JavaScript simple en lugar de Type Script. Además de hacer referencia al archivo de secuencia de comandos de formularios en la parte superior de la página como a continuación
también debe decirle al cargador del módulo que cargue el
ng.forms.FormsModule
. Después de hacer los cambios, miimports
propiedad delNgModule
método se ve a continuaciónimports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule],
¡Feliz codificación!
fuente
Actualicé de RC1 a RC5 y recibí este error.
Completé mi migración (introduje un nuevo
app.module.ts
archivo, cambiépackage.json
para incluir nuevas versiones y módulos faltantes, y finalmente cambié mimain.ts
para arrancar en consecuencia, según el ejemplo de inicio rápido de Angular2 ).Hice un
npm update
y luego unnpm outdated
para confirmar que las versiones instaladas eran correctas, todavía no tuve suerte.Terminé limpiando completamente la
node_modules
carpeta y reinstalando connpm install
- ¡Voila! Problema resuelto.fuente
Cuando hice el tutorial por primera vez, main.ts se veía ligeramente diferente de lo que es ahora. Se ve muy similar, pero tenga en cuenta las diferencias (la superior es correcta).
Correcto:
Código tutorial anterior:
fuente
agregue el código a app.module.ts Funcionó para mí:
fuente