0

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

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

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

这是期望的行为吗?

4

1 回答 1

0

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

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

也许您可以通过实施来解决这个问题canReuseForRoute

于 2013-12-15T05:22:52.087 回答