Durandal canDeactive生命周期回调

时间:2013-06-21 12:30:41

标签: knockout.js durandal

当我返回false时,我当前有两次调用我的canDeactive回调。

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

第一次触发嵌套的setTimeout中的断点时,args的值为我导航的视图。

第二轮(分秒)args值是我当前的观点,我声明可能不会停用。

这听起来对任何人都很熟悉吗?我可能在每个视图中对我的require语句做错了吗

修改详情

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

贝壳

-header

-view1

- 嵌套视图(使用knockout绑定)

-view2

-view3

- 嵌套视图

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

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

我可以确认所有视图(1,2和3)都会出现此问题,并且还可以按照预期和正确的顺序激活其他生命周期回调一次。

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

1 个答案:

答案 0 :(得分:0)

我已修复了我的问题,问题孩子是我的default.html,将我的脚本导入移动到我的应用程序主机下面(一个durandal演示文件)我的canDeactivate在收到错误的返回时不再触发两次。