我正在尝试在我的应用程序中获得3种不同的路由“样式”。我需要在每个视图模型的activate
方法中识别这些:
this.router.navigate()
activate
方法中有了这个参数。this.router.isExplicitNavigation
变量或检查我的状态是否未正式化来实现此目的。nav-bar
中显示的其中一个视图(app.ts
configureRouter
方法中的设置)。
所以这是我的问题,有没有办法知道何时调用了视图模型的activate
方法,因为用户选择了nav-bar
路线?
答案 0 :(得分:1)
如果我正确理解了您的问题,您需要区分1.和3.在activate()
中,您将收到所有路由参数(作为方法的第一个参数),两者:
/myRoute/:myparam
因此,我建议为菜单栏添加一个查询参数,您可以在activate()
中阅读该参数。例如:
/myRoute
/myRoute
/myRoute?from=navbar
您可能知道这一点,但您可以通过多种方式从代码导航:
router.navigate('compose your route manually')
router.navigateToRoute('route's name', parameters)
<a route-href="route: 'myRoute'; params.bind={...}" >
您的代码:
//button
router.navigateToRoute('my-route');
//navbar
router.navigateToRoute('my-route', {from: 'navbar'});
//destination view-model
activate(params: Object): void {
if (params.from === 'navbar')
//routed from the navbar
else
//routed from a button
}