J'ai l'erreur suivante lors du lancement de mon application Angular, même si le composant n'est pas affiché.
Je dois commenter <input>
pour que mon application fonctionne.
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:
Je regarde le plongeur Hero, mais je ne vois aucune différence avec mon code.
Voici le fichier composant:
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
la source
la source
Réponses:
Oui c'est ça, dans app.module.ts, je viens d'ajouter:
la source
[{ngModel}]
place de la bonne:[(ngModel)]
component.spec.ts
fichier.Pour pouvoir utiliser la liaison de données bidirectionnelle pour les entrées de formulaire, vous devez importer le
FormsModule
package dans votreAngular
module. Pour plus d'informations, voir leAngular 2
tutoriel officiel ici et la documentation officielle des formulairesla source
import { FORM_DIRECTIVES } from '@angular/forms';
et ajouté lesFORM_DIRECTIVES
directives to et oui ma liaison fonctionne à nouveau (pour être clair qu'elle fonctionnait avant la sortie de rc5)FORM_DIRECTIVES
sont morts juste au cas oùPour une utilisation
[(ngModel)]
dans Angular 2 , 4 & 5+ , vous devez importer FormsModule à partir de la forme angulaire ...C'est aussi dans ce chemin sous des formulaires en repo angulaire dans github :
Ce n'est probablement pas un plaisir pour les développeurs d'AngularJs car vous pouvez utiliser ng-model partout à tout moment auparavant, mais comme Angular essaie de séparer les modules pour utiliser ce que vous souhaitez utiliser à l'époque, ngModel est maintenant dans FormsModule .
De plus, si vous utilisez ReactiveFormsModule, vous devez également l' importer.
Cherche donc simplement app.module.ts et assurez-vous que vous avez
FormsModule
importé dans ...Voici également les commentaires de départ actuels pour Angular4
ngModel
dans FormsModule :Si vous souhaitez utiliser votre entrée, pas dans un formulaire, vous pouvez l'utiliser avec
ngModelOptions
et rendre autonome la réalité ...Pour plus d'informations, regardez ng_model dans la section angulaire ici
la source
Vous devez importer le FormsModule
Ouvrez app.module.ts
et ajouter une ligne
et
la source
Jeter cela pourrait aider quelqu'un.
En supposant que vous avez créé un nouveau NgModule, par exemple
AuthModule
dédié à la gestion de vos besoins en Auth, assurez-vous d'importerFormsModule
dans ce AuthModule également .Si vous utilisez
FormsModule
UNIQUEMENT dans le,AuthModule
vous n'aurez pas besoin d'importer leFormModule
IN par défautAppModule
Donc quelque chose comme ça dans le
AuthModule
:Ensuite, oubliez l'importation
AppModule
si vous n'utilisez pasFormsModule
ailleurs.la source
Exemple 1
Exemple 2
la source
Importez le FormsModule dans les modules où vous souhaitez utiliser le [(ngModel)]
la source
Il y a deux étapes que vous devez suivre pour vous débarrasser de cette erreur
Fondamentalement, app.module.ts devrait ressembler à ci-dessous:
J'espère que cela aide
la source
Vous devez importer FormsModule dans votre module racine si ce composant est à la racine, c'est-à-dire app.module.ts
Veuillez ouvrir app.module.ts
Importer FormsModule depuis @ angular / forms
Ex:
et
la source
J'utilise Angular 7
Je dois importer ReactiveFormsModule car j'utilise la classe FormBuilder pour créer un formulaire réactif.
la source
importez FormsModule dans votre module d'application.
cela permettrait à votre application de bien fonctionner.
la source
Si vous avez besoin d'utiliser d'
[(ngModel)]
abord faire vous devez importerFormsModule
dansapp.module.ts
et puis ajouter dans une liste des importations. Quelque chose comme ça: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>
la source
ngModel est la partie de FormsModule. Et il doit être importé de @ angular / forms pour fonctionner avec ngModel.
Veuillez modifier app.module.ts comme suit:
la source
Si quelqu'un reçoit toujours des erreurs après avoir appliqué la solution acceptée, cela peut être dû au fait que vous disposez d'un fichier de module distinct pour le composant dans lequel vous souhaitez utiliser la propriété ngModel dans la balise d'entrée. Dans ce cas, appliquez également la solution acceptée dans le fichier module.ts du composant.
la source
J'utilise Angular 5.
Dans mon cas, j'avais également besoin d'importer RactiveFormsModule.
app.module.ts (ou anymodule.module.ts)
la source
ReactiveFormsModule
est requis lorsque vous en avez besoin,FormGroup, FormControl ,Validators
etc. Pour l'utilisationngModel
, vous n'avez pas besoinReactiveFormsModule
.Je sais que cette question concerne Angular 2, mais je suis sur Angular 4 et aucune de ces réponses n'a aidé.
Dans Angular 4, la syntaxe doit être
J'espère que cela t'aides.
la source
si vous obtenez toujours l'erreur après avoir importé FormsModule correctement, vérifiez dans votre terminal ou (console Windows) car votre projet n'est pas en cours de compilation (à cause d'une autre erreur qui pourrait être n'importe quoi) et votre solution n'a pas été reflétée dans votre navigateur!
Dans mon cas, ma console avait l'erreur non liée suivante: La propriété 'retrieveGithubUser' n'existe pas sur le type 'ApiService'.
la source
Dans le module, vous êtes prêt à utiliser ngModel, vous devez importer FormsModule
la source
ngModel provient de FormsModule. Dans certains cas, vous pouvez recevoir ce type d'erreur:
(Dans certaines versions, j'ai rencontré ce problème) Vous avez importé correctement le FormsModule mais le problème est sur la balise HTML d'entrée. Vous devez ajouter l'attribut de balise de nom pour l'entrée et le nom lié à l'objet dans [(ngModel)] doit être le même que le nom dans l' attribut de nom
la source
En
ngModule
vous devez importerFormsModule
, carngModel
vient deFormsModule
. Veuillez modifier votre app.module.ts comme le code ci-dessous que j'ai partagéla source
importer FormModule un app.module
la source
la source
Parfois, vous obtenez cette erreur lorsque vous essayez d'utiliser un composant d'un module, qui n'est pas partagé, dans un module différent.
Par exemple, vous avez 2 modules avec module1.componentA.component.ts et module2.componentC.component.ts et vous essayez d'utiliser le sélecteur de module1.componentA.component.ts dans un modèle à l'intérieur de module2 (par exemple
<module1-componentA [someInputVariableInModule1]="variableFromHTTPRequestInModule2">
), il lancera l'erreur indiquant que someInputVariableInModule1 n'est pas disponible dans module1.componentA.component.ts - même si vous l'avez@Input() someInputVariableInModule1
dans module1.componentA.Si cela se produit, vous souhaitez partager le module1.componentA pour qu'il soit accessible dans d'autres modules. Donc, si vous partagez le module1.componentA à l'intérieur d'un sharedModule, le module1.componentA sera utilisable à l'intérieur d'autres modules (en dehors du module1), et chaque module important le sharedModule pourra accéder au sélecteur dans leurs modèles en injectant la
@Input()
variable déclarée.la source
Pour mon scénario, j'ai dû importer à la fois [CommonModule] et [FormsModule] dans mon module
la source
Vous devez importer le FormsModule
Ouvrez app.module.ts
et ajouter une ligne
et
la source
Parfois, si nous sommes déjà importés
BrowserModule
,FormsModule
et d'autres modules connexes, bien que j'aie eu la même erreur, j'ai réalisé que nous devons les importer dans l'ordre , dans mon cas, je l'ai raté. Ainsi , l' ordre devrait être commeBrowserModule
,FormsModule
,ReactiveFormsModule
.J'espère que cela aide quelqu'un .. :)
la source
C'est pour les gens qui utilisent du JavaScript simple au lieu du script de type. En plus de référencer le fichier de script de formulaires en haut de la page comme ci-dessous
vous devez également indiquer au chargeur de module de charger le fichier
ng.forms.FormsModule
. Après avoir effectué les modifications, maimports
propriété deNgModule
méthode ressemblait à ci-dessousimports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule],
Bon codage!
la source
Je suis passé de RC1 à RC5 et j'ai reçu cette erreur.
J'ai terminé ma migration (introduction d'un nouveau
app.module.ts
fichier, modificationpackage.json
pour inclure de nouvelles versions et modules manquants, et enfin modification de monmain.ts
démarrage en conséquence, sur la base de l' exemple de démarrage rapide Angular2 ).J'ai fait un
npm update
puis unnpm outdated
pour confirmer que les versions installées étaient correctes, toujours pas de chance.J'ai fini par effacer complètement le
node_modules
dossier et réinstaller avecnpm install
- Voila! Problème résolu.la source
Lorsque j'ai fait le tutoriel pour la première fois, main.ts était légèrement différent de ce qu'il est maintenant. Il semble très similaire, mais notez les différences (celle du haut est correcte).
Correct:
Ancien code du didacticiel:
la source
ajoutez le code à app.module.ts Cela a fonctionné pour moi:
la source