错误:找不到名称“ ngModel”的导出

时间:2019-08-30 11:20:01

标签: angular ngmodel

构建我的角度项目后,出现错误:  错误:找不到名称“ ngModel”的导出!

我的UI在docker容器中运行

甚至不确定在哪里寻找。它在开发中工作正常。 (ng服务)

任何想法

6 个答案:

答案 0 :(得分:4)

将FormsModule分别导入您的spec.ts文件和app.module.ts中

INSERT

答案 1 :(得分:1)

我有同样的错误(尽管在开发人员中),事实证明我没有将 FormsModule 模块添加到 app.module.ts 文件中。见下文:

enter image description here

这里也有一些problems and their corresponding solutions

答案 2 :(得分:1)

您需要按照以下方式在 .spec.ts app.module.ts (如果需要)文件中导入 FormsModule

import { FormsModule } from '@angular/forms';    <------ Add this code

describe('Testing Component', () => {
  ...
  ...

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [ 
            FormsModule      <------ Add this code
        ]
    })
    .compileComponents();
  }));

  ...
  ...

答案 3 :(得分:0)

我有一个名为ngModel的模板变量。不知道这会带来什么影响,但删除似乎可以解决。

答案 4 :(得分:0)

另一个可能的问题:如果您使用的是template form validation 当您在没有#name="ngModel"指令的表单字段上设置[(ngModel)]

例如

<input required [value]="hero.name" (change)="setHeroName($event)" #name="ngModel" >

<div *ngIf="name.invalid && (name.dirty || name.touched)"
  class="alert alert-danger">Error</div>

=>错误:找不到名称“ ngModel”的导出

已通过替换固定

[value]="hero.name" (change)="setHeroName($event)"

作者

[(ngModel)]="hero.name"

答案 5 :(得分:-1)

如果您有一个表单和该表单中的一个元素,则该元素应使用 ngModel 将控件导出到父级。

<form (ngSubmit)= "onSubmit()" #f="ngForm">
     <input type="email" id="email" name="email" #email="ngModel">

在上面的代码中,输入元素没有将控制导出到父表单元素。正确的代码是:

<form (ngSubmit)= "onSubmit()" #f="ngForm">
     <input type="email" id="email" name="email" #email="ngModel">