在路由器上调用reset方法后,Durandal Routing无法正常工作

时间:2014-02-01 14:38:15

标签: routing durandal knockout-2.0 q

在用户登录之前,我将路由器对象配置为每个人都可以看到的视图的路由。其中一个观点是login.html。在用户提供用户名和密码并经过身份验证后,我正在尝试清除路由器并根据用户的权限加载登录用户可用的路由。

我重置路由器的代码是调用路由器上的reset()方法。如果我也不在路由器上调用deactivate()方法,我会收到一条错误消息(来自Q),带有未处理的拒绝原因(说该数组应为空),并显示消息“历史记录已被激活.. 。“;

如果我在路由器上调用deactivate()方法(除了reset()方法之外),我会收到一条消息,指出找不到请求的路由。如果不是用通用路由加载每个人的路由器可以查看,我在调用重置和停用方法后加载正在加载的路由,我可以导航到我想要的视图,没有任何来自Q的投诉,我没有得到Route Not Found消息,所以问题不是随着路线的建设。

我重置路由器的代码遵循以下步骤:

  1. 在路由器上调用reset()。
  2. 在路由器上调用deactivate()(否则我得到上述的Q错误)。
  3. 在路由器上调用map()方法,传入我的路由数组。
  4. 在路由器上调用buildNavigationModel()方法。最后,
  5. 通过调用activate()方法返回路由器,并使用我所需目标视图的hash属性作为activate方法的参数。
  6. 正是在这一点上,我得到了Route Not Found消息,但如前所述,如果我将同一组路由加载到路由器中,我可以使用相同的散列导航到此视图在上面的场景中找不到。

    任何人都可以看到问题并提供有关如何进行的任何建议吗?最后一点是我有一个nav.html视图,它是一个加载到我的shell.html文档中的单独视图,它正确地绑定到新的路由集,并且该视图根据登录情况加载并显示新链接用户的权限,如果我点击代表“未找到路由”消息的链接,我确实被带到了所需的视图,该视图按预期显示。

    任何建议都将不胜感激!提前谢谢。

0 个答案:

没有答案
相关问题