Error de marco angular de TypeScript: "No hay ninguna directiva con exportAs configurado en ngForm"

Resuelto Nassim MOUALEK asked hace 8 años • 29 respuestas

Sigo recibiendo este error mientras uso el marco Angular2-forms de TypeScript:

No existe directivecon "exportAs" configurado en "ngForm"

Aquí está mi código

dependencias del proyecto:

  "dependencies": {
    "@angular/common": "2.0.0-rc.6",
    "@angular/compiler": "2.0.0-rc.6",
    "@angular/core": "2.0.0-rc.6",
    "@angular/forms": "2.0.0-rc.6",
    "@angular/http": "2.0.0-rc.6",
    "@angular/platform-browser": "2.0.0-rc.6",
    "@angular/platform-browser-dynamic": "2.0.0-rc.6",
    "@angular/router": "3.0.0-rc.2",
    "ng2-bootstrap": "^1.1.1",
    "reflect-metadata": "^0.1.8",
    "core-js": "^2.4.0",
    "es6-module-loader": "^0.17.8",
    "rxjs": "5.0.0-beta.11",
    "systemjs": "0.19.27",
    "zone.js": "0.6.17",
    "jquery": "3.0.0",
  }

Y esta es la plantilla de inicio de sesión:

<form #loginForm="ngForm" (ng-submit)="authenticate(loginForm.value)">
</form>

...y el componente de inicio de sesión:

import { Component } from '@angular/core';
import {Http, Headers}  from '@angular/http';
@Component({
    moduleId: module.id,
    selector: 'login-cmp',
    templateUrl: 'login.component.html'
})
export class LoginComponent {
  constructor($http: Http) {
    this.$http = $http;
  }
  authenticate(data) {
   ... 
  }
}

Tengo este error:

zone.js?1474211973422:484 Unhandled Promise rejection: Template parse errors:    
There is no directive with "exportAs" set to "ngForm" ("
            <form [ERROR ->]#loginForm="ngForm" 
(ngsubmit)="authenticate(loginForm.value)">
Nassim MOUALEK avatar Sep 18 '16 22:09 Nassim MOUALEK
Aceptado
import { FormsModule }   from '@angular/forms';

@NgModule({
  imports: [
             BrowserModule,

             FormsModule      //<----------make sure you have added this.
           ],
  ....
})
micronyks avatar Sep 18 '2016 15:09 micronyks

Debe importar FormsModuleno solo al AppModule raíz, sino también a cada submódulo que utilice directivas de formas angulares.

// SubModule A

import { CommonModule } from '@angular/common';
import { FormsModule }   from '@angular/forms';

@NgModule({
  imports: [
    CommonModule,
    FormsModule      //<----------make sure you have added this.
  ],
  ....
})
TetraDev avatar Aug 09 '2017 21:08 TetraDev

He agregado ReactiveFormsModuleuna imports[]matriz para resolver este error.

Error: No hay ninguna directiva con "exportAs" establecido en "ngForm" ("

Arreglar:

módulo.ts:

import {FormsModule, ReactiveFormsModule} from '@angular/forms'

imports: [
    BrowserModule,
    FormsModule , 
    ReactiveFormsModule
  ],
Shakeer Hussain avatar Jan 31 '2018 19:01 Shakeer Hussain
import { FormsModule }   from '@angular/forms';

@NgModule({
  imports: [FormsModule],
  ...
})
Günter Zöchbauer avatar Sep 18 '2016 15:09 Günter Zöchbauer