I started using Angular2 (final version) and i'm having some problems with *ngFor.
I've built the following component tree: main -> dashboard -> alerts
Unhandled Promise rejection: Template parse errors: Can't bind to 'ngForOf' since it isn't a known property of 'div'.
("<div class="item" [ERROR ->] *ngFor="let alert of alerts"> "): DashboardAlertsComponent@5:20 Property binding ngForOf not used by any directive on an embedded template.
Make sure that the property name is spelled correctly and all directives are listed in the "directives" section.
It works ok but when i'm tried adding *ngFor loop in alerts component I got the following error:
DashboardAlertsComponent:
import {Component, OnInit} from "@angular/core";
import {Alert} from "../../shared/models/alert.model";
@Component({
selector: 'dashboard-alerts',
templateUrl: './alerts.component.html'
})
export class DashboardAlertsComponent implements OnInit {
alerts:Alert[] = new Array<Alert>();
constructor() {
this.alerts.push(new Alert('1', 'high', 'My alert1', '12/11/2016 4:50 PM'));
this.alerts.push(new Alert('2', 'low', 'My alert2', '11/11/2016 9:50 PM'));
this.alerts.push(new Alert('3', 'medium', 'My alert3', '10/11/2016 2:50 PM'));
}
ngOnInit() {
}
}
alerts.component.html
<div class="item" *ngFor="let alert of alerts">
<span class="priority {{ alert }}"></span>
<span class="title">{{ alert }}</span>
<span class="time">3:40 PM</span>
<a href="#" class="more-actions"><span>Actions</span></a>
</div>
DashboardModule
@NgModule({
declarations: [
DashboardAlertsComponent
],
providers: [],
directives: [],
})
export class DashboardModule {
}
AppModule
@NgModule({
imports: [
BrowserModule,
DashboardModule
],
declarations: [
AppComponent
],
bootstrap: [AppComponent]
})
export class AppModule {
}
P.S I read many suggested solutions for this problem but none of them solved this
You should import CommonModule
in the main module, and BrowserModule
in the other modules (if you are working with multiple modules). I got the same problem and it works fine for me