我在angular2中遇到了一些问题 我想在我的服务中制作嵌套路线,但我被卡住了。
@Component({
selector : "app",
directives : [ROUTER_DIRECTIVES],
template : `
<router-outlet></router-outlet>
`
})
@RouteConfig([
{path: "/**", redirectTo: ['/User', {userId:0}, 'Main']},
{path: "/users/:userId/...", component: User, name: "User", useAsDefault:true},
{path: "/main", component: Main, name: "Main"}
])
这是app.ts中的代码,它引导了应用程序。
以下是user.ts包含用户组件。
@Component({
selector : "user",
directives : [ROUTER_DIRECTIVES, NavBar, UserInfo, Main, Feeds, Notebook],
template : `
<div class="dotebook-main">
<nav-bar></nav-bar>
<div class="dotebook-view">
<div class="dotebook-body">
<router-outlet></router-outlet>
</div>
<div class="dotebook-user">
<user-info [user]="user"></user-info>
</div>
</div>
</div>
`
})
export class User{
constructor(){
}
}
@RouteConfig([
{path: "/", redirectTo : ['Main']},
{path: "/main", component: Main, name: 'Main', useAsDefault: true},
{path: "/feeds", component: Feeds, name: "Feeds"},
{path: "/notebook/:notebookId", component: Notebook, name: "Notebook"}
])
我想让'/ user /:userId'一直是root用户,
我想'/ user /:userId / main'是默认页面。
用户组件应该有子路径,如
'/ user /:userId / main'或'/ user /:userId / feeds'等。
所以我在app.ts.的用户组件网址的末尾添加了“/ ...”。
但此时我遇到了问题。
我认为路由“Main”应该在User Component中完成,但是,
让用户第一次去“users /:userId / main”,
我需要在app.ts routeConfig中使用“redirectTo”。
我得到组件“用户”没有路由配置错误。
我认为这违反了我制作的网址层次结构
但我无法猜测解决方案是什么。
有没有人遇到类似的问题?
帮助!
提前谢谢!
答案 0 :(得分:2)
@RouteConfig(..)
注释必须高于类声明。像这样:
@Component({
selector : "user",
...
})
@RouteConfig([
{path: "/", redirectTo : ['Main']},
{path: "/main", component: Main, name: 'Main', useAsDefault: true},
{path: "/feeds", component: Feeds, name: "Feeds"},
{path: "/notebook/:notebookId", component: Notebook, name: "Notebook"}
])
export class User{
constructor(){
}
}