首页 > 解决方案 > 没有找到与 exportAs 'ngForm' 相关的指令。已尝试所有建议

问题描述

我知道这个问题已经被问过很多次了,但我找到的所有解决方案都没有解决我的问题。这是我在登录组件 html 文件中的表单:

 <form #loginForm="ngForm" (ngSubmit)="login()">
            <p *ngIf="errorMessage" class="error">{{ errorMessage }}</p>
            <p class="username">User Name</p>
            <input type="text" placeholder="Enter user name" name="username" [(ngModel)]="model.username">
            <p class="password">Password</p>
            <input type="password" class="centered-items" placeholder="Enter password" name="password" [(ngModel)]="model.password">
            <hr>
            <button class="login-btn" type="submit">Login</button>
            <button [routerLink]="['../']">Cancel</button>
            <p>Not registered? <a [routerLink]="['../register']">Register now</a></p>
        </form>

这是我在登录组件 .ts 文件中的登录方法:

 login() {
    this.databaseService.login(this.model).subscribe(() => {
    },  error => {
      this.errorMessage = error.error;
    }, () => {
      this.route.navigate(['../']);
    });
  }

这是控制台中收到的错误:

src/app/login/login.component.ts:8:16
    8   templateUrl: './login.component.html',
                     ~~~~~~~~~~~~~~~~~~~~~~~~
    Error occurs in the template of component LoginComponent.
src/app/register/register.component.html:6:27 - error NG8003: No directive found with exportAs 'ngForm'.

我已将 FormsModule 和 ReactiveFormsModule 添加到我的 app.module 和 login.module 文件中。我重新启动了 VS 代码,并尝试运行 npm update。我还尝试按照一篇帖子的建议从#loginForm 中删除#。

标签: angular

解决方案


将 LoginComponent 添加到 app.module 文件的声明中为我解决了这个问题


推荐阅读