1

我最近刚从 angular2 的路由器移到了ngrx 的路由器。另外,我正在使用 angular 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 会按预期更改,但页面本身不会加载(单击后没有发送请求,并且组件的构造函数不是

非常感谢您的帮助。

4

1 回答 1

0

我最终恢复到 Angular 的组件并使用router.navigate([URL]).

在撰写本文时,NgRX 的路由器仍然无能。

于 2016-08-09T20:02:25.317 回答