我正在制作一个有几个子节点的布局对象,我希望父对象声明所有子对象的路由 - 最好不要在我的app.module.ts中 .
这是我的标记 HomeLayoutComponent
<router-outlet name="body"></router-outlet>
<router-outlet name="css"></router-outlet>
<router-outlet name="header"></router-outlet>
<router-outlet></router-outlet>
<router-outlet name="footer"></router-outlet>
<router-outlet name="scripts"></router-outlet>
这里有一点点,但是我必须更换各个部分,因为我有各种页面的3个不同的模板,包括不同的css,不同的脚本,甚至 <body>
标签上的不同属性 .
现在 HomeLayoutComponent
的打字稿
import { Component } from '@angular/core';
import { Routes } from '@angular/router';
import { HomeBodyComponent } from './home-body.component';
import { HomeCssComponent } from './home-css.component';
import { HomeHeaderComponent } from './home-header.component';
import { HomeContentComponent } from './home-content.component';
import { HomeFooterComponent } from './home-footer.component';
import { HomeScriptsComponent } from './home-scripts.component';
@Component({
selector: 'home-layout',
template: require('./home-layout.component.html')
})
@Routes([
{ path: '', component: HomeBodyComponent, outlet: 'body' },
{ path: '', component: HomeCssComponent, outlet: 'css' },
{ path: '', component: HomeHeaderComponent, outlet: 'header' },
{ path: '', component: HomeContentComponent },
{ path: '', component: HomeFooterComponent, outlet: 'footer' },
{ path: '', component: HomeScriptsComponent, outlet: 'scripts' }
])
export class HomeLayoutComponent {
}
我的问题是@Routes错误地显示以下错误消息:
错误TS2304:找不到名称'Routes' .
也许我这样做是错的,我需要把路线放在app.module中 . 我想在那个文件中避免这么多路由 .
根据Difference between router and router-deprecated in angular2,我应该使用Routes而不是我在几乎所有其他谷歌搜索结果中看到的RouterConfig .
1 回答
这不再是您创建路线的方式 . 现在您需要使用
RouterModule
,并使用路由对其进行配置 .Routes
仍然是一个东西,但它不是用作装饰器 . 它是应该传递给RouterModule.forRoot(Routes)
的类型 . 所以我们会做类似的事情在这里,我们需要将
RouterModule
导入AppModule
,调用其forRoot
方法,传入Routes
. 如果路由通常是一个不同的文件,那么你可以做类似的事情app.routing.ts
app.module.ts
See also: