我使用的是Angular2 2.1.0。当我想要显示公司列表时,我得到了这个错误。

在file.component.ts中:

public companies: any[] = [
    { "id": 0, "name": "Available" },
    { "id": 1, "name": "Ready" },
    { "id": 2, "name": "Started" }
];

在file.component.html中:

<tbody>
  <tr *ngFor="let item of companies; let i =index">
     <td>{{i}}</td>
     <td>{{item.name}}</td>
  </tr>
</tbody>

当前回答

所以请确保

指令中没有语法错误 浏览器(在应用程序模块)和公共(在其他/子)模块被导入(与上面提到的Günter Zöchbauer相同) 如果你在应用程序中有路由,那么路由模块应该导入到应用程序模块中 所有路由组件的模块也被导入到App模块中,例如: app-routing.module。Ts为: const routes: routes = [ {path: ",组件:CustomerComponent}, {path: 'admin',组件:AdminComponent} ];

然后App模块必须导入@NgModule()中的CustomerComponent和AdminComponent模块。

其他回答

作为将来的参考,我正在Angular 12上做一些单元测试,遇到了这个问题。

我的问题是我正在使用ng bootstrap库并测试一个用NgbModal创建新模态的方法。

我得到这些警告,因为我忘记导入弹出窗口所创建的组件。

我不需要导入FormsModule、CommonModule或BrowserModule。

因此,如果您遇到这些错误,请确保您试图创建实例的组件在导入中列出。

我有一个问题,因为json数据中的空白。

我认为我的情况是一个罕见的情况,但我还是会回答。

我没有任何语法错误,我导入了BrowserModule,我重新声明了我的IDE (VS Code),但我仍然在我的模板中有红线,因为我使用了*ngFor。

这是因为我正在使用一个扩展,Angular语言服务,但它相当老了。更新后,错误停止出现。

为了防止有人在尝试导入CommonModule后仍然遇到错误,请尝试重新启动服务器。它竟然有效

当ngFor语法没有正确编写时,这个错误也会被抛出,在我的例子中,我有:

<ng-template *ngForOf="let key of SomeObject; index as i">

它通过使用以下语法得到了修复:

<ng-template ngFor let-key [ngForOf]="SomeObject" let-i="index">