canActivate与durandal 2.0.1的问题

时间:2013-12-13 22:26:01

标签: durandal durandal-2.0

我下载了Durandal 2.0.1 StarterKit,我将它用于Web项目。我现在和它一起工作了一段时间。

在我的一个视图模型中,我在网址中使用带有id的路由:route: 'test/:id'。由于我想防止来自用户的随机id输入,我使用canAvtivate函数,我在其中执行一些检查。

当我尝试从另一个路由访问路由时,canActivate函数在激活之前被评估,但是当我只更改url中的id值时,不会调用该函数。如果我在该视图中说router.navigate("#/test/44");,情况就会一样。

这是期望的行为吗?

1 个答案:

答案 0 :(得分:0)

这有点猜测,因为我还没有玩过参数化路由,但是活动模块可能正在被重用?以下链接中的“模块重用”部分是否适用于您的情况?

http://durandaljs.com/documentation/Using-The-Router/

也许您可以通过实施canReuseForRoute

来解决这个问题