路由属性更新时,Aurelia-router router.navigation不会刷新

时间:2017-03-07 19:28:32

标签: aurelia aurelia-router

nav路由的create-team属性由我userService中的可观察属性设置。 我有一个问题。无法刷新router.navigation数组以反映我的属性isTeamMember已更改。因此,即使我的isTeamMember属性返回true,除非我进行整页刷新,否则不会隐藏路径。

我尝试使用router.refreshNavigation()但它不起作用,因为根据我的理解,只有设置为nav: true的路由才会添加到router.navigation数组中。

我正在循环浏览router.navigation数组以显示我的应用程序的菜单。但是当用户创建团队时,我想从菜单中隐藏该路线,因为用户现在是团队所有者。我使用AuthorizeStep来处理对该路由的访问,但是它也可以动态隐藏此路由。

app.ts

configureRouter(config: RouterConfiguration, router: Router){
...
    var appRoutes = [
        { route: '/create-team', name:'create-team', moduleId: 'routes/create-team', nav: !this.userService.isTeamMember, title: 'menu.create-team', settings: { auth: { isNotTeamMember: true } } },
    ]
...
}

是否有一种干净的方式来刷新route.navigation数组,以便我的菜单更新而无需进行整页刷新?

1 个答案:

答案 0 :(得分:2)

您可以使用值转换器迭代router.routes并使用信号器更新绑定。

她是一个榜样。

https://gist.run/?id=f2e02b8caa831776d8571b9c886cfdd4