我下载了Durandal 2.0.1 StarterKit,我将它用于Web项目。我现在和它一起工作了一段时间。
在我的一个视图模型中,我在网址中使用带有id的路由:route: 'test/:id'
。由于我想防止来自用户的随机id输入,我使用canAvtivate
函数,我在其中执行一些检查。
当我尝试从另一个路由访问路由时,canActivate
函数在激活之前被评估,但是当我只更改url中的id值时,不会调用该函数。如果我在该视图中说router.navigate("#/test/44");
,情况就会一样。
这是期望的行为吗?
答案 0 :(得分:0)
这有点猜测,因为我还没有玩过参数化路由,但是活动模块可能正在被重用?以下链接中的“模块重用”部分是否适用于您的情况?
http://durandaljs.com/documentation/Using-The-Router/
也许您可以通过实施canReuseForRoute