私はAngular 2 Final release(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>
ルートモジュール(BrowserModule
)の場合は@NgModule()
のimports: []
にAppModule
を追加し、それ以外の場合はCommonModule
を追加します。
import {BrowserModule, CommonModule} from '@angular/common';
..
..
@NgModule({
imports: [BrowserModule, /* or CommonModule */],
..
})
私の場合、問題は私のチームメイトが*ngfor
の代わりに*ngFor
をテンプレートに記載したことでした。この問題を処理するための正しいエラーがないことに不思議です(In Angular 4)。
NgFor、ngIfなどの組み込みディレクティブを使用しているモジュールに 'CommonModule'をインポートする必要があります。
import { CommonModule } from "@angular/common";
@NgModule({
imports: [
CommonModule
]
})
export class ProductModule { }
覚えておくべきこと:
カスタムモジュール(AppModule以外のモジュール)を使用する場合は、その中に共通モジュールをインポートする必要があります。
yourmodule.module.ts
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
],
exports:[ ],
declarations: []
})
あなたがあなた自身のモジュールを作っているならば、あなた自身のモジュールのインポートにCommonModuleを追加してください
カスタムモジュールには共通モジュールが必要です
"@ angular/common"から{CommonModule}をインポートします。
@NgModule({imports:[CommonModule]})
同じエラーが発生しましたが、持っていました CommonModuleがインポートされました。代わりに、モジュールを分割するときにコピー/貼り付けのためにコンマを残すべきではありません:
@NgModule({
declarations: [
ShopComponent,
ShoppingEditComponent
],
imports: [
CommonModule,
FormsModule,
RouterModule.forChild([
{ path: 'shop', component: ShopComponent }, <--- offensive comma
])
]
})
app.module.tsの修正と変更:アプリモジュールでBrowserModuleをインポートする
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule, BrowserAnimationsModule,
],
exports: [BrowserModule, BrowserAnimationsModule],
providers: [],
bootstrap: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
「app-routing.module」を使用するときは、「CommonModule」のインポートを忘れています。インポートすることを忘れないでください!
import { CommonModule } from "@angular/common";
@NgModule({ imports: [ CommonModule]})