JavaScript Durandal儿童视图模型

时间:2013-04-17 12:52:14

标签: durandal

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

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

每次激活视图activate时,都会在mymodule中调用welcome.html函数,如预期的那样。但是当welcome.html停用时(我导航到另一个视图),mymodule.js中不会调用函数canDeactivatedevativate

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

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

您可以通过多种方式进行此操作,请参阅有关此问题的durandal文档以获取更多信息。 http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks/ 具体来说,请查看该页面的“Activator Callbacks”部分。

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