我想创建一个仅在子路由之外导航时触发的禁用保护。
在rc4 ("@angular/router": "3.0.0-beta.1")中,这段代码的工作方式如下:
path: '',
component: RootComponent,
canDeactivate: [CanDeactivateGuard],
children: [
{
path: '',
component: XComponent,
},
{
path: 'somepath',
component: YComponent
}
]
}
在这个例子中,从XComponent导航到YComponent并没有触发deactivate guard,但是例如导航到"someNotChildComponent"就触发了。
更新到@angular/route 3.0.0-rc后。每次路径改变都会触发1个守卫。什么是正确的行为?有更好的办法处理这个案子吗?
我相信你可以添加
canDeactivate: [CanDeactivateGuard]
这是一个bug,现在可以正常工作了