mirror of
https://github.com/akveo/ngx-admin.git
synced 2025-12-24 03:10:13 +01:00
docs(routes): new docs for sidebar, new page and project structure
This commit is contained in:
parent
7152220b90
commit
6a7f51c904
4 changed files with 118 additions and 45 deletions
|
|
@ -6,24 +6,23 @@ group: Customization
|
|||
template: article.jade
|
||||
---
|
||||
|
||||
ng2-admin uses [Angular Router](https://angular.io/docs/ts/latest/guide/router-deprecated.html) for navigation.
|
||||
Currently this version of the router is deprecated and we are going to move on to a new version once it's stable.
|
||||
ng2-admin uses [Angular 2 Component Router](https://angular.io/docs/ts/latest/guide/router.html) for navigation.
|
||||
|
||||
We strongly recommend to follow pages structure in your application.
|
||||
If it doesn't fit your needs please create a GitHub issue and tell us why. We would be glad to discuss.
|
||||
We strongly recommend to follow pages structure in your application.
|
||||
If it does not fit your needs please create a GitHub issue and tell us why. We would be glad to discuss.
|
||||
|
||||
|
||||
Basically any page is just a usual Angular 2 Component with some routes defined for it.
|
||||
Basically any page is just a common Angular 2 Component with a route defined for it.
|
||||
|
||||
## Page creation example
|
||||
|
||||
1) Let's assume we want to create a blank page with title 'My New Page'
|
||||
1) Let's assume we want to create a blank page with a title 'My New Page'
|
||||
<br><br>
|
||||
|
||||
2) Let's Create a new directory to contain our new page inside of `src/app/pages`. Let's call this directory `new`.
|
||||
2) Let's Create a new directory for our new page inside of `src/app/pages`. Let's call the directory `new`.
|
||||
<br><br>
|
||||
|
||||
3) Then let's create blank angular component to contain our page called 'new.component.module.js' inside of `src/app/pages/new`:
|
||||
3) Then let's create a blank angular 2 component for our page called 'new.component.ts' inside of `src/app/pages/new`:
|
||||
|
||||
```javascript
|
||||
import {Component} from '@angular/core';
|
||||
|
|
@ -44,21 +43,57 @@ export class New {
|
|||
This will create a simple Angular 2 component, for more detail please check out [official Angular 2 documentation](https://angular.io/docs/ts/latest/guide/displaying-data.html).
|
||||
<br><br>
|
||||
|
||||
4) Last thing we need to do is to define a Router configuration in a parent component, in our case in Pages component `src/app/pages/pages.component.ts`:
|
||||
4) Last thing we need to do is to define a Router configuration. Routes for pages are located inside of `src/app/pages/pages.routes.ts`.
|
||||
Typically all pages are children for `/pages` routes and defined under `children` property of root `pages` route like this:
|
||||
|
||||
```javascript
|
||||
@RouteConfig([
|
||||
// ... some routes here
|
||||
// imports here
|
||||
// lets import our page
|
||||
import {New} from './new/new.component';
|
||||
|
||||
|
||||
//noinspection TypeScriptValidateTypes
|
||||
export const PagesRoutes:RouterConfig = [
|
||||
{
|
||||
name: 'New',
|
||||
component: New,
|
||||
path: '/new',
|
||||
path: 'pages',
|
||||
component: Pages,
|
||||
children: [
|
||||
{
|
||||
path: 'new', // path for our page
|
||||
component: New, // component imported above
|
||||
data: { // custom menu declaration
|
||||
menu: {
|
||||
title: 'New Page', // menu title
|
||||
icon: 'ion-android-home', // menu icon
|
||||
selected: false,
|
||||
expanded: false,
|
||||
order: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
path: 'dashboard',
|
||||
component: Dashboard,
|
||||
data: {
|
||||
menu: {
|
||||
title: 'Dashboard',
|
||||
icon: 'ion-android-home',
|
||||
selected: false,
|
||||
expanded: false,
|
||||
order: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
// rest of the routes
|
||||
]
|
||||
}
|
||||
])
|
||||
export class Pages {
|
||||
}
|
||||
];
|
||||
|
||||
```
|
||||
<br><br>
|
||||
|
||||
And that's it! now your page should be available by the following url [http://localhost:3000/#/pages/new](http://localhost:3000/#/pages/new).
|
||||
If you want to add a link to your page into Sidebar, please look at the [following article](/ng2-admin/articles/015-sidebar/).
|
||||
And that's it! Now your page is available by the following url [http://localhost:3000/#/pages/new](http://localhost:3000/#/pages/new).
|
||||
Plus, your page is automatically registered inside the sidebar menu. If you don't want to have a link in the menu - just remove the `menu` declaration under `data` property.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue