在 Angular2 应用程序中使用布局
Working with layouts in Angular2 app
我开发了一个使用路由的 Angular2 应用程序。
我的问题场景是:
我有一个具有不同 HTML 和 CSS.Once 的登录页面成功登录,我重定向到另一个具有不同 HTML 和 CSS 的页面。
但是我有 index.html(login page) 作为我的主要布局。因此我需要了解如何使用多个布局?
我做了一些研发,但我无法理解如何实现它?
请查找以下代码:
1) app.routing.module
import { NgModule } from '@angular/core';
import { Routes, Router, RouterModule } from '@angular/router';
import { AuthGuard } from './guards/auth.guard';
import { LoginComponent } from './components/login/login.component';
const routes: Routes = [
{
path: '',
redirectTo: '/login',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent
},
{
path: 'employee',
component: EmployeeComponent,
canActivate: [AuthGuard]
}];
export class AppRoutingModule { }
export const routedComponents = [LoginComponent,EmployeeComponent];
2) 应用组件
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `
<router-outlet></router-outlet>
`
})
export class AppComponent {
constructor() {
}
}
3) 应用模块
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {HttpModule} from '@angular/http';
import { AppComponent } from './app.component';
import { AppRoutingModule, routedComponents } from './app-routing.module';
import { AuthGuard } from './guards/auth.guard';
@NgModule({
imports: [BrowserModule,
HttpModule,
AppRoutingModule
],
declarations: [AppComponent,
routedComponents
],
providers: [AuthGuard],
bootstrap: [AppComponent]
})
export class AppModule { }
4) Index.html
<my-app>
</my-app>
任何帮助将不胜感激!
谢谢!!
如本参考资料所述:
We have several ways to add styles to a component:
- inline in the template HTML
- by setting styles
- or styleUrls metadata with CSS imports
此外,我建议您在一个模块中创建组件(和路由),例如树(层次结构)。用于检查用户登录状态您需要一个共享服务(例如 authservice)。
- 从 index.html 中删除所有 CSS 并创建单独的组件用于登录和另一个组件 say home 用于其他功能。
- 分别在登录组件和首页组件中加载CSS登录和首页。
为登录和主页创建单独的路由,将所有其他功能路由放在主页路由内作为子路由。
请找到以下代码:
{
path: 'login',
component: LoginComponent
},
{
path: 'home',
component: HomeComponent,
children: [
{
path: 'childPage',
component: childPageComponent
}]
}
使用下行导航到子页面:
this.router.navigate(['/home/childPage'])
谢谢!!!
我开发了一个使用路由的 Angular2 应用程序。
我的问题场景是:
我有一个具有不同 HTML 和 CSS.Once 的登录页面成功登录,我重定向到另一个具有不同 HTML 和 CSS 的页面。 但是我有 index.html(login page) 作为我的主要布局。因此我需要了解如何使用多个布局?
我做了一些研发,但我无法理解如何实现它?
请查找以下代码:
1) app.routing.module
import { NgModule } from '@angular/core';
import { Routes, Router, RouterModule } from '@angular/router';
import { AuthGuard } from './guards/auth.guard';
import { LoginComponent } from './components/login/login.component';
const routes: Routes = [
{
path: '',
redirectTo: '/login',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent
},
{
path: 'employee',
component: EmployeeComponent,
canActivate: [AuthGuard]
}];
export class AppRoutingModule { }
export const routedComponents = [LoginComponent,EmployeeComponent];
2) 应用组件
import { Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `
<router-outlet></router-outlet>
`
})
export class AppComponent {
constructor() {
}
}
3) 应用模块
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {HttpModule} from '@angular/http';
import { AppComponent } from './app.component';
import { AppRoutingModule, routedComponents } from './app-routing.module';
import { AuthGuard } from './guards/auth.guard';
@NgModule({
imports: [BrowserModule,
HttpModule,
AppRoutingModule
],
declarations: [AppComponent,
routedComponents
],
providers: [AuthGuard],
bootstrap: [AppComponent]
})
export class AppModule { }
4) Index.html
<my-app>
</my-app>
任何帮助将不胜感激!
谢谢!!
如本参考资料所述:
We have several ways to add styles to a component:
- inline in the template HTML
- by setting styles
- or styleUrls metadata with CSS imports
此外,我建议您在一个模块中创建组件(和路由),例如树(层次结构)。用于检查用户登录状态您需要一个共享服务(例如 authservice)。
- 从 index.html 中删除所有 CSS 并创建单独的组件用于登录和另一个组件 say home 用于其他功能。
- 分别在登录组件和首页组件中加载CSS登录和首页。
为登录和主页创建单独的路由,将所有其他功能路由放在主页路由内作为子路由。 请找到以下代码:
{ path: 'login', component: LoginComponent }, { path: 'home', component: HomeComponent, children: [ { path: 'childPage', component: childPageComponent }] }
使用下行导航到子页面:
this.router.navigate(['/home/childPage'])
谢谢!!!