0

我正在使用 DurandalJS。我的视图welcome.html有一个子视图mymodule

welcome.html:    
<div>
            <!--ko compose: {model:'viewmodels/mymodule', activate: true}-->
            <!--/ko-->
</div>

正如预期的那样,每次激活视图时都会调用该activate函数。但是当被停用时(我导航到另一个视图)功能和mymodulewelcome.htmlwelcome.htmlcanDeactivatedevativate没有在 mymodule.js 中调用。

如何解决这个问题?

4

1 回答 1

2

在 compose 绑定上使用 activate:true 不会管理视图模型的整个生命周期,只会使用该方法调用 activate 函数。(如您所见)。

要获取所有生命周期事件,您需要使用激活器来管理视图模型的生命周期。

您有多种选择来执行此操作,请参阅有关此事的 durandal 文档以获取更多信息。 http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks/ 具体来说,请查看该页面的“激活器回调”部分。

它基本上归结为使用路由器来激活您的视图模型或自己创建一个激活器。

于 2013-04-17T16:53:10.103 回答