1

目前,当我返回 false 时,我的 canDeactive 回调被调用了两次。

调用堆栈相同,唯一的区别是在 system.js 中,获取函数 args 变量在每次调用时具有不同的值。

第一次命中嵌套 setTimeout 中的断点时,args 具有我导航查看的值。

第二轮(分秒) args 值是我目前的观点,我已经说过可能不会停用。

这听起来很熟悉吗?我是否可能在每个视图中对我的 require 语句做错了什么

编辑更多信息

我的设置:( - 表示嵌套)

-标题

-view1

--嵌套视图(使用敲除绑定)

-view2

-view3

--嵌套视图

为了在视图之间导航,我在每个视图上都有一个属性,说明它的页面标题以及任何链接项,例如 view1 标题:“Page 1”,链接 [{path:“#/view2”}]。我的每一个视图都“需要”标题视图,并将这些选项设置为激活(我不喜欢这篇文章,因为它感觉像是一个黑客,但那是另一天的事了)。

单击链接时,我会调用 shell 上的函数,该函数又会调用 router.navigateTo(单击的项目的路径) 或返回 view3。

我可以确认此问题发生在所有视图(1,2 和 3)中,并且 canActivate 以及其他生命周期回调按预期以正确的顺序触发一次。

抱歉缺少代码,但我不确定在哪里看,因为它似乎是控制导航要求的东西(由于上面提到的单一差异)

4

1 回答 1

0

我已经解决了我的问题,问题子项是我的 default.html,已将我的脚本导入移动到我的应用程序主机下方(一个 la durandal 演示片),我的 canDeactivate 在收到错误返回时不再触发两次。

于 2013-06-24T09:31:40.483 回答