Durandal - 发布/订阅 - 何时清理订阅

时间:2014-01-19 05:53:28

标签: durandal durandal-2.0

我们的durandal应用程序有许多模块化UI组件(都使用基于AMD构造函数的视图模型创建),我想开始添加发布/订阅通信。我需要确定确保正确“清理”订阅的最佳方法。

何时/如何清理这些订阅?

对于少数几个视图模型,deactivate事件似乎已足够,但其余视图模型呢?我没有看到一种特殊的机制允许视图模型在其自身之后可靠地“清理”。

在我实施某种一次性模式之前,我是否缺少一些明显的方法?

后续问题:除了调用subscription.off()以正确清理之外还有什么要做的吗?

1 个答案:

答案 0 :(得分:1)

使用视图模型时从subscription.off()调用deactivate,或者在使用小部件时从detached调用{{1}}应该是所有必需的。事件系统有一堆测试用例https://github.com/BlueSpire/Durandal/blob/master/test/specs/events.spec.js#L240,可用作您自己测试的启动器。