Reputation: 83
I am learning angular 2. I am facing an error 'router-outlet' is not a known element'. I have one folder dashboard including dashboard.component.ts,dashboard.module.ts,dashboard.component.html. And codes of those files are followings.
dashboard.module.ts
------------------------------
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DashboardComponent } from './dashboard.component';
import { AllBookListComponent } from './allbooklist.component';
@NgModule({
imports: [CommonModule],
declarations: [AllBookListComponent,DashboardComponent],
exports: [AllBookListComponent,DashboardComponent],
providers: [],
})
export class DashboardModule {
}
dashboard.component.ts
-----------------------------
import { Component } from '@angular/core';
@Component({
templateUrl: './dashboard.component.html',
})
export class DashboardComponent
{
}
dashboard.component.html
------------------------------------
<a routerLink="aaa" routerLinkActive="active">Home</a>
<router-outlet ></router-outlet>
app.module.ts
----------------------------
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { LoginModule } from './login/login.module';
import { DashboardModule } from './dashboard/dashboard.module';
import { routing } from './app.routing';
import { AppComponent } from './app.component';
@NgModule({
imports:[ BrowserModule,routing,LoginModule,DashboardModule],
declarations: [ AppComponent],
providers: [],
bootstrap: [ AppComponent ]
})
export class AppModule { }
app.routing.ts
-----------------------
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './login/login.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { AllBookListComponent } from './dashboard
export const routing = RouterModule.forRoot([
{path: '', component: LoginComponent},
{ path: 'dashboard', component: DashboardComponent,
children: [
{ path: 'aaa', component: AllBookListComponent }
]
}
]);
app.component.ts
-------------------
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<router-outlet></router-outlet>`,
})
export class AppComponent { name = 'Angular'; }
But if I import the DashboardComponent (import { DashboardComponent } from './dashboard.component';) in app.module.ts instead of dashboard.module.ts then its working fine. My question is why should I import DashboardComponent in app.module.ts instead of dashboard.module.ts?as at last dashboard.module.ts is imported in app.module.ts.Please help
Upvotes: 1
Views: 98
Reputation: 1030
Import RouterModule
in DashBoardMoule
<router-outlet>
is a part of RouterModule
and your component is trying to access router-outlet
and module that contains DashBoardComponent
is not importing RouterModule
Upvotes: 0