我正在尝试为我的实体创建一个“编辑”网址。因此,例如/my-site/entity/1
和/my-site/entity/1/edit
。 edit
部分仅用于切换主/父实体URL的状态。
在角度1中,使用ui-router我可以按照
的方式做点什么.state("home.entity.edit", {
url: "/edit",
reloadOnSearch: false
})
即。这将是home.entity
的子状态。它将没有视图或控制器,因为父状态将处理它。此外,在切换到此状态时,在重定向/控制器执行方面实际上不会发生任何事情。
实际上是否可以使用angular2?
中的组件路由器执行此操作答案 0 :(得分:1)
是的,这可以使用路由器参数。 编辑参数为optional parameter。在你的ngOnInit中,你将从请求中读取参数,并采取相应的行动。 它的自动化程度略低于您的示例,但它也提供了更多的自由。
答案 1 :(得分:0)
目前,我已按照以下方式实施
{
path: 'view/:id',
component: NotesViewComponent,
children: [
{
path: '',
component: null
},
{
path: 'edit',
canActivate: [EditModeActivator],
component: null
}
],
data: {
editMode: false
}
}
其中
@Injectable()
class EditModeActivator implements CanActivate {
constructor() { }
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (next.url[0].path === "edit") {
let data: any = next.parent.data;
data.editMode = true;
}
return true
}
}
这是一个黑客是的,但现在会做!