我刚刚从angular2的路由器转移到ngrx的路由器。 另外,我使用的是角度2 rc4。
我的路线看起来像这样:
export const: Routes = [
{path: "appRoute1", component: "appComponent1", guards: [HashGuard, hasSelectedGuard]},
{path: "appRoute2", component: "appComponent2", guards: [HashGuard, hasSelectedGuard]},
]
HashGuard只有一个函数(和构造函数):
protectRoute(candidate : TravesalCandidate){
if (!window.location.hash){
this.router.go(HOME_ADDRESS);
}
return Observable.of(true);
}
同样,HasSelectedGuard只有一个功能:
protectRoute(candidate : TravesalCandidate){
if (!this.currentSelectionService.hasSelectedPerson()){
this.router.go(HOME_ADDRESS);
return Observable.of(false);
}
return Observable.of(true)
}
我正在引导所需的一切,正如我应该的那样:
bootstrap(AppComponent, [
provideRouter(routes, HashLocationStrategy),
Router,
HashGuard,
CurrentSelectionService
]
我有一个带有多个链接的sidemenu组件,其他我有appRoute1和appRoute2:
<a [linkTo]="'/appRoute1'"> ... </a>
<a [linkTo]="'/appRoute2'"> ... </a>
当我点击其中一个链接时,URL会按预期更改,但页面本身不会加载(点击后没有请求发送,组件的构造函数不是
非常感谢帮助。
答案 0 :(得分:0)
我最终恢复到Angular的组件并使用next
。
在撰写本文时,NgRX的路由器仍然不合适。