I am having trouble creating angular routes. I have implemented feature modules and I am using routing for each of those modules. I want the routes to go from app to layout to dashboard and then to accounts. The route is not created properly, it seems dashboard is being skipped and route goes directly to accounts. Here is what it looks like when i use augury to debug the routes.
Here is my code for each route. each route is in a module of its own. I would really like to keep the routes separated in modules. Any suggestions would be greatly appreciated.
//app routes
const appRoutes: Routes = [
{ path: "login", component: LoginComponent },
{
path: "",
canActivate: [AuthGaurdService],
loadChildren: "./layouts/layouts.module#LayoutsModule"
},
{ path: "**", component: PageNotFoundComponent }
];
//layout routes
const LayoutRoutes: Routes = [
{
path: "",
component: LayoutsComponent,
canActivate: [AuthGaurdService],
children: [
{
path: "",
canActivateChild: [AuthGaurdService],
children: [
{
path: "account-information",
loadChildren: "../account-information/account-information.module#AccountInformationModule"
},
{
path: "",
loadChildren: "../dashboard/dashboard.module#DashboardModule"
},
]
}
]
}
];
//dashboard routes
const routes: Routes = [
{
path: "",
component: DashboardComponent,
canActivate: [AuthGaurdService],
children: [{
path: "",
canActivateChild: [AuthGaurdService],
children: [
{
path: "accounts",
loadChildren: "./accounts/accounts.module#AccountsModule"
},
{
path: "",
component: HomeComponent
}
]
}]
}
];
//account routes
const AccountsRoutes: Routes = [
{
path: "accounts",
component: AccountsComponent,
canActivate: [AuthGaurdService],
children: [
{
path: "",
canActivateChild: [AuthGaurdService],
children: [
{ path: "transactions", component: TransactionsComponent },
{ path: "summary", component: SummaryComponent },
{ path: "earnings", component: EarningsComponent }
]
}
]
}
];
<!--app.html -->
<router-outlet></router-outlet>
<!-- layout.html -->
<div class="page-container">
<app-navbar></app-navbar>
<div class="page-content-wrapper ">
<div class="content">
<router-outlet></router-outlet>
</div>
<div class="container-fluid container-fixed-lg footer">
<app-footer></app-footer>
</div>
</div>
</div>
<!-- dashboard.html -->
<div class="page-container">
<app-navbar></app-navbar>
<div class="page-content-wrapper ">
<div class="content">
<router-outlet></router-outlet>
</div>
<div class="container-fluid container-fixed-lg footer">
<app-footer></app-footer>
</div>
</div>
</div>
<!-- accounts -->
<router-outlet></router-outlet>
this is what my page looks like when i to home

this is the for accounts/summary

and my side menu looks like this
let retail: Array<Menu> = [
{
name: "Home",
router_link: "",
submenu: [],
toggle_submenu: false,
icon: ""
},
{
name: "Accounts",
router_link: "accounts/summary",
toggle_submenu: false,
icon: "",
submenu: [
{
name: "Summary",
router_link: "accounts/summary",
toggle_submenu: false,
icon: "",
submenu: []
},
{
name: "Tansactions",
router_link: "accounts/transactions",
toggle_submenu: false,
icon: "",
submenu: []
},
{
name: "Earnings",
router_link: "accounts/earnings",
toggle_submenu: false,
icon: "",
submenu: []
}
]
},
{
name: "Sales",
router_link: "sales",
toggle_submenu: false,
icon: "",
submenu: []
},
{
name: "Inventory",
router_link: "inventory",
toggle_submenu: false,
icon: "",
submenu: []
},
{
name: "Upload",
router_link: "upload",
toggle_submenu: false,
icon: "",
submenu: []
}
];
