我使用此代码强制更改路由(对应于按钮单击)。完整的方法是这样的:Angular 2.0.0-beta.2路由器注入不需要的'?'后缀到路由
submit(){
this.store.dispatch({type: MasterScreenerActions.SUBMIT});
this.router.navigateByUrl('master-screener-results');
}
现在,这个工作得很好,但如果我打回浏览器,然后再次单击submit
按钮,浏览器将导航到像这样:Navigated to http://localhost:4200/master-screener-results?
。最后注意?
。然而,在浏览器最终到达正确的URL后,即/master-screener-results
,在重新加载应用程序之后等等。问题是这条路线只打算在填好各种表格之后激活或连接,暗示在master-screener
。
为什么这种行为以及它是如何发生的? master-screener-results
应该是儿童组件吗?我需要实施某种类型的警卫吗?任何意见或提示从哪里开始寻找非常感激。
编辑:我也最终得到?null=on
后缀在我的路线后一些摆动......这是什么意思?
EDIT2:此行为似乎发生,当且仅当模板已被以前加载,即zone.js:101 XHR finished loading: GET "http://localhost:4200/app/master-screener-results/master-screener-results.component.html".
,下一次调用将导致Navigated to http://localhost:4200/master-screener-results?